单例的三要素:
1.将构造函数私有化。
2.在类中创建一个本类对象,并私有化。
3.向外提供一个公有方法来获取该对象。
Java枚举类是从Java5开始支持的。
枚举类的构造方法是用private修饰的。
枚举类的所有实例写在类的第一行,这时枚举类就会自动产生实例的对象。
这些实例都是public static void,可以被外界类名.对象直接调用。
因此
当枚举只有一个成员的时候,就可以作为一种单例的实现方式。
另外网上看到有人说enum获得的单例是最安全的,懒汉式和饿汉式的单例都可以用反射得到。
实现代码:- public enum Singleton {
- INSTANCE {
- public void someMethod() {
- // . . .
- }
- };
-
- protected abstract void someMethod();
- }
复制代码 |