对于一个类,究竟要使用静态方法,还是使用一般的实例方法来定义逻辑,并没有一个绝对的标准,关键要看这个类的使用场景。
如果这个类需要被反复频繁的使用,那么应该尽量定义静态方法,通过无状态的类引用(以保证类的使用线程安全),从而减少对象在内存堆中的频繁构建和销毁过程。
class TransformParameterSetup {
private static final String PARAMSETUP_URL = "%s?f=java&class=com.ptc.arbortext.pecustom.ParameterSetup&file=%s";
public static void setupParameters(File xmlFile) {
//...
}
}
如果这个类使用频次不是很频繁,那么应该定义一般的实例方法,通过构造方法设置final状态的变量域(以创建合格的线程安全对象)。
public class XmlMetaInfo {
private final String docType;
private final String styleSheet;
XmlMetaInfo(String doctype, String stylesheet) {
this.docType = doctype;
this.styleSheet = stylesheet;
}
public String getDocType() {
return docType;
}
public String getStyleSheet() {
return styleSheet;
}
}
至于何为频繁,则要根据具体情况具体分析了。