全局创建对象的实例(在构造函数或任何方法之外)

时间:2016-10-21 11:41:14

标签: java singleton global-variables

我在参加我的大四学生的项目时遇到了这个课程。我试图了解这段代码是否能正常工作,因为这看起来有点可疑。

这里DataStore类对象正在global级实例化,我不确定它是如何工作的? 我知道这是一个单例类,但什么时候会创建这样的global对象?是否保证传递给mContext的{​​{1}}始终为非空?

DataStore

谢谢!

1 个答案:

答案 0 :(得分:0)

我不知道你是教育者还是学生。在任何情况下都不应该鼓励这样的代码。

Google已从其代码库转到great lengthsfind and remove singletons。我不鼓励学生使用它们。

即使我认为单身人士是必要的,我也会说这个例子是不必要的复杂和不透明的。不需要帮手或其他机器。这就足够了:

public class Singleton {
    private static final Singleton instance = new Singleton();

    private Singleton() {}

    public static Singleton getInstance() { return instance; }
}

我从未理解过懒惰的实例化Singleton。如果你知道它会被使用,为什么要等?