我在参加我的大四学生的项目时遇到了这个课程。我试图了解这段代码是否能正常工作,因为这看起来有点可疑。
这里DataStore
类对象正在global
级实例化,我不确定它是如何工作的?
我知道这是一个单例类,但什么时候会创建这样的global
对象?是否保证传递给mContext
的{{1}}始终为非空?
DataStore
谢谢!
答案 0 :(得分:0)
我不知道你是教育者还是学生。在任何情况下都不应该鼓励这样的代码。
Google已从其代码库转到great lengths到find and remove singletons。我不鼓励学生使用它们。
即使我认为单身人士是必要的,我也会说这个例子是不必要的复杂和不透明的。不需要帮手或其他机器。这就足够了:
public class Singleton {
private static final Singleton instance = new Singleton();
private Singleton() {}
public static Singleton getInstance() { return instance; }
}
我从未理解过懒惰的实例化Singleton
。如果你知道它会被使用,为什么要等?