一:类的创建和销毁__singleton单例模式

来源:互联网 发布:泉立方骗局知乎 编辑:程序博客网 时间:2024/05/17 09:27

使用的场景:在系统中本质上是唯一的,只要一个实例对象


jdk1.5之前的实现方式

/** * 单例的实现方式1 */public class SingLeton {    // 静态final域    public static final SingLeton INSTANCE = new SingLeton();    // 私有    private SingLeton() {    }}

变成可序列化

public class SingLeton implements Serializable {    // 静态final域    public static final SingLeton INSTANCE = new SingLeton();    // 私有    private SingLeton() {    }    // 保证singleton属性,加readResolve,并且实力域要用transient修饰    public Object readResolve() {        return INSTANCE;    }}


/** *单例的实现方式2 */public class SingLeton2 {    // 私有    public static final SingLeton2 INSTANCE = new SingLeton2();    // 私有    private SingLeton2() {    }    // 静态工厂方法    public static SingLeton2 getInstance() {        return INSTANCE;    }}
变成可序列化

public class SingLeton2 implements Serializable {// 私有private static final SingLeton2 INSTANCE = new SingLeton2();// 私有private SingLeton2() {}// 静态工厂方法public static SingLeton2 getInstance() {return INSTANCE;}// 保证singleton属性,加readResolve,并且实力域要用transient修饰public Object readResolve() {return INSTANCE;}}

jdk1.5之后的实现方式

/** * 方法3:枚举(单元素的枚举是singleton最佳实践,无偿提供序列化机制,绝对防止多次实例化) */public enum SingLeton3 {    INSTANCE;}





原创粉丝点击