对于Java中的完全无状态的实用程序类,我建议将类声明为public和final,并具有私有构造函数以防止实例化。最终关键字可以防止子类化,并可以提高运行时的效率。
该类应该包含所有的静态方法,不应该被声明为抽象的(因为这将意味着该类不具体,必须以某种方式实现)。
该类应该被赋予一个与其提供的实用程序集相对应的名称(如果该类提供广泛的未分类实用程序,则为“Util”)。
该类不应包含一个嵌套类,除非嵌套类也是一个实用程序类(尽管这种做法可能很复杂,并且损害了可读性)。
该类中的方法应该有适当的名称。
类本身使用的方法应该是私有的。
该类不应该有任何非final / non-static类字段。
该类也可以被其他类静态导入,以提高代码的可读性(但这取决于项目的复杂性)。
例:
public final class ExampleUtilities{
// Example Utility method
public static int foo(int i, int j){
int val;
//Do stuff
return val;
}
// Example Utility method overloaded
public static float foo(float i, float j)
float val;
//Do stuff
return val;
}
// Example Utility method calling private method
public static long bar(int p){
return hid(p) * hid(p);
}
// Example private method
private static long hid(int i){
return i * 2 + 1;
}
}
也许最重要的是,每个方法的文档应该是精确和描述性的。机会是这个课程的方法将会经常使用,并且拥有高质量的文档来补充代码。