我创建了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的另一个实例。