全球单身状态

时间:2019-02-25 06:38:04

标签: java

我正在讨论单身人士。首先,这里是一些代码:

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使其成为全局变量?

2 个答案:

答案 0 :(得分:2)

“全局”是错误的说法。变量instance仍然仅在AppSettings类内部可见。但是,它引用的AppSettings实例可通过getInstance方法提供给外界。

答案 1 :(得分:1)

由于只有一个AppSettings对象实例(因为它是一个静态变量),所以状态成员字段可以通过该实例被任何其他对象访问(当然,您需要这些成员的getter和setter他们是私人的)。因此,它们可以用于维护全局状态