枚举实现创建单例

枚举实现单例

package jess.day04;

/**
 * @author Jess
 * @date 2021/9/21
 */
public class Singleton {
    /**
     * 私有化无参构造
     */
    private Singleton(){}

    /**
     * 创建单例的静态方法 在调用该静态方法时创建一个对象
     */
    public static Singleton getSinleton(){
        // 通过调用枚举类来调 new一个实例对象
        return Instance.INSTANCE.instance;
    }

    /**
     * 创建私有的枚举类
     */
    private enum Instance{
        // 静态属性 INSTANCE 调用无参构造
        INSTANCE;
        private final Singleton instance;

        /**
         * 私有无参构造 new一个实例对象
         */
        private Instance(){
            this.instance =new Singleton();
        }

    }

    public static void main(String[] args) {
        Singleton sinleton1 = Singleton.getSinleton();
        Singleton singleton2 =Singleton.getSinleton();
        System.out.println(singleton2==sinleton1);
        //输出结果为ture

    }
}
上一篇:在多线程环境中的单例模式


下一篇:设计模式(二)——单例模式(史上最全)