请原谅挑衅性的问题标题。众所周知,您永远不应该在 Java 程序中使用公共字段(除非在类似结构的类中,无论如何您都应该避免使用)。但是人们很少谈论硬币的另一面——私有方法。
我的看法是这样的:如果您有私有方法,那么您正在编写本地程序代码。具有私有字段的 Java 类和调用许多私有方法的一些公共方法与具有全局变量和一些函数的 C 模块之间基本上没有区别,其中一些函数在extern
其他地方编辑(除了相当大的区别之外您不能实例化 C 模块)。鉴于许多最关心良好 Java 实践的人都认为您应该尽可能远离程序性陈规,我很惊讶没有更多的指导方针限制私有方法的使用。
请注意,我不想建议任何人认为永远不应使用私有方法(或者它们实际上与公共字段一样糟糕)。但这是我的问题,我尽量做到客观:
- 是否有任何标准的 Java 准则限制使用私有方法? (标准指南的一个例子是“没有公共领域”——尽管您可能会争辩说这是一个意见问题,但几乎普遍接受的是不使用公共领域的良好做法)。
- 如何使用私有方法绕过?(例如,可以通过将公共字段声明为私有并使用公共 get/set 方法来绕过它们。如果我有一个包含许多私有方法的类,我想我应该创建一个新类来保存它们. 但是如果我这样做了, 那么我冒着编写一个从未实例化并且行为与 C 模块完全相同的 Java 类的风险. 是否有任何广泛使用的设计模式可以帮助我减少类中私有方法的数量? )