我正在讨论单身人士。首先,这里是一些代码:
class AppSettings {
private static AppSettings instance = new AppSettings();
private Object state1;
private Object state2;
private Object state3;
private AppSettings() {}
public static AppSettings getInstance() {
return instance;
}
}
说话者说,由于instance
是静态的,因此它是一个全局变量,使用instance
可以访问的任何内容也将具有全局状态。
有人可以向我解释什么是全球状态?我知道全局状态可以在整个应用程序中访问,并且可以由另一个不好的对象更改。但是如何将instance
声明为static
使其成为全局变量?
答案 0 :(得分:2)
“全局”是错误的说法。变量instance
仍然仅在AppSettings
类内部可见。但是,它引用的AppSettings
实例可通过getInstance
方法提供给外界。
答案 1 :(得分:1)
由于只有一个AppSettings对象实例(因为它是一个静态变量),所以状态成员字段可以通过该实例被任何其他对象访问(当然,您需要这些成员的getter和setter他们是私人的)。因此,它们可以用于维护全局状态