【发布时间】:2013-05-04 17:49:02
【问题描述】:
在你用一个明显的答案跳到我面前之前,让我限定问题并说,并非所有课程都可以子分类。
- 子类应该是一个经过深思熟虑的额外而不是所有类的默认属性。
- 可以说类在默认情况下应该是最终的,而不是最终的,如果人们真的想要的话。
我可以想到封装私有类的许多优点。
- 如果该类不是真正供我查看的,而只是一个我应该考虑实现细节的助手,则将其设为非公开意味着当我在我的 ide 中按名称或接口的实现搜索类时它不会出现。
- 这也意味着,如果除了导出的接口之外的所有内容都是公开的,那么在浏览库 jar 文件时检查 api 会变得更加简单,因为噪音更少。我不再看到内部实现的东西。
- 无需担心包外的子类。
- 对于用户而言,实际好处意味着他们需要的方法也可能会被组合在一个接口/类下,而不是分散在其他公共类中,这意味着更少的混乱,更少的地方可以查看和更少的句柄太管理了。
那么为什么人们不利用这些设施呢?
【问题讨论】:
标签: java design-patterns class-design