我创建了SomeConfig来存储静态数据。但是我试图理解女巫选择更好(或两者都不选)

在上课SomeConfig之前,我这样写:

public class SomeConfig {

    private static int mValue = 8;
    private static String mString = "some String";

    public static int getValue() {
        return mValue;
    }

    public static void setValue(int value) {
      mValue = value;
    }

    public static String getTheString() {
        return mString;
    }

    public static void setValue(String theString) {
       mString = theString;
    }
}


现在我将其更改为:

 public class SomeConfig {
    private static SomeConfig mSomeConfig = new SomeConfig();

    private int mValue = 8;
    private String mString = "some String";

    public static int getValue() {
        return mSomeConfig.mValue;
    }

    public static void setValue(int value) {
        mSomeConfig.mValue = value;
    }

    public static String getTheString() {
        return mSomeConfig.mString;
    }

    public static void setValue(String theString) {
        mSomeConfig.mString = theString;
    }
}


通常我将私有变量更改为非静态,但API保持不变。

我发布的两个选项有什么区别?

谢谢,

最佳答案

如果只希望SomeConfig的一个实例存在于应用程序中,则可能需要使其成为Singleton类。参考此链接:link

您的第二个选项似乎最接近于Singleton,您只需将Default构造函数设为Private,以确保没有其他类可以创建SomeConfig的另一个实例。

10-05 18:44