是否有工具可以使所有类包受保护并尽可能最终?

Han*_*örr 9 java ide module

背景:我注意到在许多项目中,内部代码中的几乎所有类都是公共的而不是最终的,即使它们不需要.但是,对我来说,默认情况下做出这个决定似乎是明智的,但如果它们实际意味着要从系统的其他部分使用,那么只能使类公开.拥有包受保护的类是一种简单的机制,可以强制模块之间的边界,并作为类的预期用途的文档.

如果有一个(最好的免费的:-)工具来保护所有可以保护的类而不破坏程序,并且可能使所有的东西都没有子类,那么这将是开始有意识地使用保护机制的良好起点.(当然你需要事后调整一下.)你知道这样的工具吗?

警告:我知道有更好的模块化机制,如OSGI和计划的超级包装等等.但是在许多当前项目中,这不是一个选项,使用普通的旧Java机制是您可以轻松完成的.此外,这仅适用于您拥有共享代码所有权(这样每个人都可以根据需要将内容更改回公共状态)以及您是否正在开发最终产品,而不是供其他人使用的库.我也不太确定最终做事的好处 - 这可以防止AOP和嘲弄.

澄清:正如我所说,我不是在谈论那些无法改变它的人,而是关于中型项目的内部代码,鼓励每个人根据需要改变和重构所有内容.当我谈论受保护的包裹或最终将其视为"受到保护,直到某人感到迫切需要解除这些限制".如果有人觉得需要解除工具设置的限制,欢迎他这样做.

小智 2

即使有这样的工具(没有),一个好的程序员也不会使用它......访问规范是一个最好由程序员自己理解和解决的设计问题。想想看......你编写一个程序并运行该工具并把所有东西都排序(假设该工具首先是超级智能的,能够真正理解你的程序)......然后你决定修改它......扩展一些类等等...并且您最终扩展了最终类并创建了私有类的对象..(这些只是您将面临的许多问题中的一小部分)...

问题是……当该工具完成其工作时,您甚至不再理解自己的程序。

底线..停止寻找工具来解决您的设计问题..(这就像要求自动调试程序的工具一样)