简介

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

代码

  1. /**
  2. * 使用枚举单例
  3. *
  4. * @author liuzhihang
  5. * @date 2018/8/17 17:34
  6. */
  7. public class SingletonPattern {
  8. private SingletonPattern() {
  9. }
  10. public static SingletonPattern getInstance() {
  11. return SingleEnum.INSTANCE.getSingletonPattern();
  12. }
  13. private enum SingleEnum {
  14. /**
  15. * 单例
  16. */
  17. INSTANCE;
  18. private SingletonPattern singletonPattern;
  19. SingleEnum() {
  20. this.singletonPattern = new SingletonPattern();
  21. }
  22. public SingletonPattern getSingletonPattern() {
  23. return singletonPattern;
  24. }
  25. }
  26. }

优点

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