简述
单例 (Singleton) 模式提供一个可以全局访问的实例,并保证该类仅有一个实例。
设计模式类型:创建型
实现
1.懒汉 多线程不安全
1 | public class Singleton { |
2.懒汉 多线程安全
1 | public class Singleton { |
3.双检锁
1 | public class Singleton { |
4.饿汉
1 | public class Singleton { |
5.静态内部类
1 | public class Singleton { |
6.枚举
1 | public enum Singleton { |
选择
不建议使用 1 和 2
不考虑继承问题使用 6 枚举
单例是派生类,确定会使用,建议使用 4 饿汉
单例是派生类,且不确定单例是否会使用,考虑 3 双检锁 或 5 静态内部类