我正在开发一个新项目,遗留的Java代码中充满了使用私有静态方法和公共静态方法的类。
很难效仿。
例如:
public Car {
private static checkGas(){
..
}
public static startCar(){
checkGas();
}
}
是否有一些我从未听说过的设计模式会使其适用?
我总是在" helper"上使用公共静态方法。不需要Util.caculate(..)
的课程,以及上面的#34; Car"例如,我不会使用任何私有静态或公共静态方法......只是私有和公共方法。
答案 0 :(得分:2)
您通常希望尽可能严格地限制访问,因此如果您的实用程序类包含一些公共静态方法和一些他们调用的静态帮助程序方法,那么这些辅助方法应该是私有的。
这与编写非静态私有帮助程序方法以支持非静态公共方法没有根本区别。
我不会称之为设计模式,而是一种良好的通用做法。
除非必须,否则不要公开。一旦方法公开,您就无法在不破坏使用它的所有内容的情况下修改其签名。
关于放置静态方法的最佳位置,我宁愿将它们放在它们旨在帮助的类上,而不是在“Util”类中聚合随机静态方法。
一个很好的例子是Integer
类,它可以实例化以表示数值,但也有许多静态辅助方法,如compare
,max
,{{ 1}}等等。
实用程序类应该用于真正通用的东西,例如Math
类。