背景:我注意到在许多项目中,内部代码中的几乎所有类都是公共的而不是最终的,即使它们不是必需的。但是,对我来说,默认情况下做出这个决定似乎是明智的,但如果它们实际上是要从系统的其他部分使用,那么只能使类公开。拥有包受保护的类是一种简单的机制来强制模块之间的边界,并作为有关类的预期用途的文档。
如果有一个(最好的免费的:-)工具来保护所有可以保护的类而不破坏程序,并且可能使所有的东西都没有子类,那么这将是一个很好的起点,开始有意识地使用保护机制。 (当然你需要事后调整一下。)你知道这样的工具吗?
警告:我知道有更好的模块化机制,如OSGI和计划的超级包装等等。但是在许多当前项目中,这不是一个选项,使用普通的旧Java机制是您可以轻松完成的。此外,这仅适用于您拥有共享代码所有权(这样每个人都可以根据需要将内容更改回公共状态)以及您是否正在开发最终产品,而不是供其他人使用的库。我也不太确定最终做事的好处 - 这可以防止AOP和嘲笑。澄清:正如我所说的那样,我不是在谈论那些无法改变它的人,而是关于那些鼓励每个人都鼓励的中型项目的内部代码。根据需要改变和重构一切。当我谈论受保护的包裹或最终将其视为“受到保护,直到某人感到迫切需要解除这些限制”。如果有人觉得需要解除工具设置的限制,欢迎他这样做。
答案 0 :(得分:2)
即使有这样的工具,(没有),一个优秀的程序员也不会使用它......访问规范是程序员自己最了解和解决的设计问题。考虑一下......你制作一个程序并运行工具并将所有内容排序(假设该工具首先是超级智能的,以便真正理解你的程序)..然后你决定修改它...扩展一些类等等。你最终扩展了最终的类并制作私人类的对象..(这些是你将面临的许多问题中的一小部分)......
事情是..当工具完成它的工作时,你甚至不会理解你自己的程序。
Bottomline ..停止寻找解决您的设计问题的工具..(就像要求自动调试程序的工具一样)
答案 1 :(得分:1)