有效的 java 鼓励使用接口而不是抽象/具体类。问题是是否存在接口层次结构,应该选择哪种接口类型以及为什么?
例如,一个ArrayList
实现List
哪个实现Collection
哪个实现Iterable
。那么我们什么时候通过 a list
vs collection
vs iterable
?
显而易见的答案是每个子类都在不断添加更多功能。那么我们是否应该继续向上爬,直到匹配所需的功能?我的意思是,如果只需要在一个虚构的应用程序iterator()
中,那么使用Iterable
else 使用List
?