Java 抵御反射调用私有构造器
?
? ? JDK1.5及以后,增加了实现Singleton的第三种方法。只需编写一个包含单个元素的枚举类型。
?
? ??
?
? ? 对于前两种单例模式,为了使Singleton能够序列化,除了实现标记接口Serializable外,还需增加类似下面的方法,防止反序列化时生成“假冒”的单例类:
private Object readResolve() {return INSTANCE;}? ? ?而对于枚举类型,完全不用多此一举。因为枚举类型已经提供了该机制。