设计模式(一)单例模式:5-单元素枚举类模式
思想:
单元素的枚举类型已经成为实现 Singleton 的最佳方法。
—— 《Effective Java》 第三条:用私有构造器或者枚举类型强化 Singleton 属性
public enum EnumSingleton { INSTANCE; }
- 优势?
代码简洁。
基于 enum 的特性,有效地防止反射的入侵。
无偿提供了序列化的支持,但是不用加入 readResolve() 方法,就能防止多次实例化。关于序列化的单例,详见:设计模式(一)单例模式:实现 Serializable 接口之后的额外操作
- 劣势?
枚举类 enum 不支持 extends 和 implement 关键字。