单例模式是一种创建型设计模式,该模式保证一个类只有一个实例,并提供了全局访问点。它通常用来控制某些共享资源的访问,例如控制数据库连接池等。
单例模式具有以下特点:
- 单例类只有一个实例对象;
- 该实例对象必须由单例类自行创建;
- 该实例对象对外提供一个全局访问点。
单例模式实现的关键是将构造器私有化,使得该类不能被其他类实例化。然后,提供一个全局访问点,使得其他类能够访问该类的唯一实例对象。
示例代码如下所示:
public class Singleton { private static Singleton instance = null; private Singleton() {} public static Singleton getInstance() { if (instance == null) { synchronized(Singleton.class) { if (instance == null) { instance = new Singleton(); } } } return instance; }}
该示例代码使用了双重检验锁(double check locking)机制,保证线程安全。