为什么要用枚举实现单例模式(避免反射、序列化问题)?

相信如果能看到我这篇博客的小伙伴,肯定都看过Joshua Bloch大神说过的这句话:“单元素的枚举类型已经成为实现Singleton的最佳方法”。其实,第一次读到这句话,我连其中说的单元素指什么都不知道,尴尬。后来,网上看了搜索了好几篇文章,发现基本上都是转载自相同的一篇文章,而我的困惑是“为什么要用枚举类型实现单例模式呢”,文章中都说的很笼统,于是决定自己结合Joshua Bloch的《effective java》写一篇总结下,给后来的同学做个参考。

设计模式-单例

单例模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。