package demo;
public enum Singleton {
INSTANCE;
}
这就是枚举模式的代码,枚举的最大特点就是简单,枚举和java普通类是一样的不仅能够拥有字段还能够有自己的方法。最重要的是默认枚举实例的创建是现成安全的,并且在任何情况下都是一个单例。
前几篇文章的枚举方式中反序列化依然可以创建一个新的实例。
反序列化提供了一个特别的钩子函数,类中具有一个私有的、被实现的方法readResolve();,这个方法可以让开发人员控制对象的反序列化。
这个方法就是给你返回一个实例而不是新创建一个实例
枚举就不存在这个问题。即使是反序列化也不会出现这个问题。