avatar

使用枚举实现单例

简介

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

代码


/**
* 使用枚举单例
*
* @author liuzhihang
* @date 2018/8/17 17:34
*/
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.防止反射

文章作者: liuzhihang
文章链接: https://liuzhihang.com/2018/08/17/use-enumeration-to-implement-a-singleton.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Notes

评论