【发布时间】:2010-06-21 23:52:28
【问题描述】:
对于Collections 中所有将List 作为第一个参数的方法,为什么这些方法不只是List 接口的一部分?
我的直觉是:给定一个 List 对象,该对象本身应该“知道”如何对其自身执行操作,例如 rotate()、shuffle() 或 reverse()。但是,作为一名 Java 程序员,我必须检查 List 接口中的方法以及 Collections 类中“那边”的静态方法,以确保我使用的是规范的解决方案。
为什么有些方法作为静态独立方法放置在 Collections 类中,而不是添加到 List 接口中(并且可能因此由某些现有或可能的基类实现)?
我试图更好地理解 Java 集合框架背后的设计决策。
我忽略了一些引人注目的面向对象设计原则吗?或者这种区分仅仅是出于某种实际的性能原因?
【问题讨论】:
-
这可能是一个有趣的面试问题,所以感谢您的灵感:)
标签: java collections