如果在使用它的方法之前必须调用util类的init方法,这是一种设计上的气味吗?以下代码对util类来说设计不好吗?
public class MyUtils {
private static MyObject myObject;
public static void init(MyObject testObject) {
myObject = testObject;
}
public static void closePDFWindow(String myString) {
myObject.displaySomthing(myString);
}
}
答案 0 :(得分:1)
这被称为“时间耦合”,因为这两个方法之间存在隐式关系,您必须先调用第一个,然后再调用第二个。
因此,您可以使用"Static Initialization Blocks"和初始化“ testObject”的工厂类来避免这种情况