在大多数使用集合的
Java代码中,我看到类似的东西.
List<String> list = new ArrayList<String>();
但我总是想知道为什么它更受欢迎
ArrayList<String> = new ArrayList<String>();
我研究了一下但是不能理解很多.
解决方法
因为通过其界面使用对象时,您可以稍后更改实现.例如:
public ArrayList<String> doSomething(..) { ... return arrayList; }
但是过了一段时间,看起来ArrayList对于这个方法的调用者最常使用的是低效的,所以你决定将它改为LinkedList.
>如果您的方法只返回List,那么您就完成了
>如果您的方法返回ArrayList,您应该转到调用该方法的所有位置并更改它.如果有人使用某些特定于arraylist的方法会怎样 – 你必须考虑如何重构它.这是一个很好的方案.如果您的代码是库,而其他分支机构/公司正在使用它,您可能会遇到效率低下的代码.
也可以看看:
> What does it mean to “program to an interface”?
> “Program to an interface”. What does it mean?