JAVA模式之Singleton模式

来源:互联网 发布:一等奖学金 英文知乎 编辑:程序博客网 时间:2024/06/05 07:16
package com.zxm;import java.io.Serializable;/** * Creator:zxm * Date:2017/2/23 * Description: */public class Elvis implements Serializable{    public static final Elvis INSTANCE = new Elvis();    private Elvis(){//        ...    }        //防止享有特权的客户端借助AccessibleObject.setAccessible方法,通过反射机制调用私有构造器    public static Elvis getInstance(){        return INSTANCE;    }        //为了变成可序列化的,必须声明所有实例域都是瞬时的(transient),并提供一个readResolve方法    private Object readResolve(){        return INSTANCE;    }}

public enum Elvis{    INSTANCE;    }

实用包含单个元素的枚举,无偿地提供了序列化机制,绝对防止多次实例化,即使是面对复杂的序列化或者反射攻击的时候。


单元素的枚举类型已经成为实现Singleton的最佳方法


0 0
原创粉丝点击