使用枚举实现单例

简介

介绍使用枚举的方式创建单例, 其他方式可以参考单例模式

代码



public class SingletonPattern {

    private SingletonPattern() {
    }

    public static SingletonPattern getInstance() {
      return   SingleEnum.INSTANCE.getSingletonPattern();
    }


    private enum SingleEnum {

        /**
         * 单例
         */
        INSTANCE;

        private SingletonPattern singletonPattern;

        SingleEnum() {
            this.singletonPattern = new SingletonPattern();
        }

        public SingletonPattern getSingletonPattern() {
            return singletonPattern;
        }
    }

}

优点

1.比双重锁检查相对简洁
2.线程安全
3.自动处理序列化
4.防止反射