1.实现一:
public class Singleton implements Serializable {
private Singleton(){
}
private static final Singleton INSTANCE = new Singleton();
public static Singleton getInstance(){
return INSTANCE;
}
}
1.1、为什么加final
怕子类覆盖父类里的方法
1.2、如果实现了序列化接口,还要做什么来防止反序列化破坏单例
反序列化也会生成新的对象,如果与单例模式中想要维护对象不同,就相当于破坏了单例。
解决方法
public Object readResovle(){
return INSTANCE;
}
如果反序列化发现readResovle返回了对象,就会把其返回的对象当做结果。