单例模式
单例模式是一种创建型设计模式,它允许我们确保某个类只有一个实例,并提供一个全局访问点。
实现
下面是一个使用 Java 实现单例模式的示例代码:
public final class Singleton {
private static volatile Singleton instance;
private Singleton() {}
public static Singleton getInstance() {
Singleton result = instance;
if (result == null) {
synchronized(Singleton.class) {
if (instance == null) {
instance = result = new Singleton();
}
}
}
return result;
}
public void doSomething() {
// ...
}
}
在这个示例中,我们使用了“双重检查锁定”(double-checked locking)的方法来保证线程安全。在多线程环境下,这种方法能够避免竞态条件并保证只有一个实例被创建。
适用性
当需要确保在程序运行期间只有一个实例存在时,可以使用单例模式。例如,当需要确保只有一个数据库连接、线程池或者文件系统时,都可以使用单例模式来实现。
总结
单例模式是一种简单而又实用的设计模式,它可以确保某个类只有一个实例,并提供一个全局访问点。在多线程环境下,需要使用双重检查锁定等方法来保证线程安全。在实际应用中,单例模式通常用于控制资源的使用,例如控制数据库连接池、线程池等。