设计模式(一)单例模式:5-单元素枚举类模式

思想:

 

  单元素的枚举类型已经成为实现 Singleton 的最佳方法。

                          —— 《Effective Java》 第三条:用私有构造器或者枚举类型强化 Singleton 属性

 

public enum EnumSingleton {

    INSTANCE;

}

 

  • 优势?

  代码简洁。

  基于 enum 的特性,有效地防止反射的入侵。

  无偿提供了序列化的支持,但是不用加入 readResolve() 方法,就能防止多次实例化。关于序列化的单例,详见:设计模式(一)单例模式:实现 Serializable 接口之后的额外操作

  

  • 劣势?

  枚举类 enum 不支持 extends 和 implement 关键字。

 

posted @ 2017-09-10 17:40  Gerrard_Feng  阅读(614)  评论(0编辑  收藏  举报