在使用util类的方法之前可以初始化它吗?

时间:2019-07-11 07:18:05

标签: java design-patterns static-methods

如果在使用它的方法之前必须调用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);
    }
}

1 个答案:

答案 0 :(得分:1)

这被称为“时间耦合”,因为这两个方法之间存在隐式关系,您必须先调用第一个,然后再调用第二个。

因此,您可以使用"Static Initialization Blocks"和初始化“ testObject”的工厂类来避免这种情况