class Singleton {
//私有,静态的类自身实例
private static Singleton instance = new Singleton();
//私有的构造子(构造器,构造函数,构造方法)
private Singleton(){}
/*
//公开,静态的工厂方法。 只能通过这个方法获取对象,所以没有本类对象能调用这个方法,所以只能交给类了,所以是静态的,然后它使用了成员变量instance,所以instance是静态的。
public static Singleton getInstance() {
return instance;
}
*/
}
如果没有这个方法,可以将成员变量instance的一个修饰符private去掉。此时也实现了单例。与只有一个元素的枚举一样,只有一个元素的枚举就是单例的。
static是绝对不可以去掉的,因为构造函数式私有的,你不能自己创建对象,然后通过对象调用。这也不和逻辑——有对象了,还需要干什么?所以只有通过类来调用相关成员了。 |