public class Singleton {
private static Singleton uniqueInstance = null;
private Singleton() {
// Exists only to defeat instantiation.
}
public static Singleton getInstance() {
if (uniqueInstance == null) {
uniqueInstance = new Singleton();
}
return uniqueInstance;
}
// Other methods...
}
private static Singleton uniqueInstance = null;这句中 private使得除该类外任何其他类不能访问它,在这里之恩那个通过getInstance访问。
static使得public static Singleton getInstance()可以访问static 成员uniqueInstance。
如果把getInstance去掉static,那么这个函数就变成普通的实例函数,必须该类的一个对象来执行这个函数,但是构造器是private的,不能生成对象,所以只能按照上面的方法写。