作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了 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;
}
}
通常我将私有(private)变量更改为非静态变量,但 API 保持不变。
我发布的两个选项有什么区别?
谢谢,
最佳答案
如果您只希望 SomeConfig 的一个实例存在于您的应用程序中,那么您可能希望将其设为单例类。请参阅此链接:link
您的第二个选项似乎最接近单例,您只需要将默认构造函数设为私有(private)以确保没有其他类可以创建 SomeConfig 的另一个实例。
关于java - 如何在java中正确创建带有静态变量的配置类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22102248/
我是一名优秀的程序员,十分优秀!