创建型设计模式之Singleton(单例)设计模式
创建型设计模式之Singleton(单例)设计模式
摘要:
Singleton(单例)设计模式确保一个类仅有一个实例,并提供全局访问点。其结构包含一个静态方法getInstance()用于获取唯一实例,构造方法私有化防止外部实例化。适用于需要控制实例数量(如配置管理、线程池等)或需通过子类扩展但客户端无需修改代码的场景。示例代码展示了通过静态变量实现线程安全的单例模式,多次调用getInstance()返回同一实例,验证了唯一性。
1)意图:
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
2)结构
其中:Singleton指定一个Instance操作,允许客户访问它的唯一实例,Instance是一个类
操作:可能负责创建它自己的唯一实例。
3)适用性
Singleton 模式适用于:
- 当类只能有一个实例并且客户可以从一个众所周知的访问点访问它时。
- 当这个唯一实例应该是通过子类可扩展的,并且客户无法更改代码就能使用一个扩展的实例时。
代码
public class SingletonPattern {public static void main(String[] args) {Singleton instance1 = Singleton.getInstance();Singleton instance2 = Singleton.getInstance();Singleton instance3 = Singleton.getInstance();Singleton instance4 = Singleton.getInstance();System.out.println("instance1 = " + instance1);System.out.println("instance2 = " + instance2);System.out.println("instance3 = " + instance3);System.out.println("instance4 = " + instance4);}
}class Singleton{private static final Singleton instance = new Singleton();private Singleton(){}public static Singleton getInstance(){return instance;}
}