• 已删除用户
Gallin
发布于 2023-09-04 / 75 阅读
0

单例模式

单例模式

单例模式是一种创建型设计模式,它允许我们确保某个类只有一个实例,并提供一个全局访问点。

实现

下面是一个使用 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)的方法来保证线程安全。在多线程环境下,这种方法能够避免竞态条件并保证只有一个实例被创建。

适用性

当需要确保在程序运行期间只有一个实例存在时,可以使用单例模式。例如,当需要确保只有一个数据库连接、线程池或者文件系统时,都可以使用单例模式来实现。

总结

单例模式是一种简单而又实用的设计模式,它可以确保某个类只有一个实例,并提供一个全局访问点。在多线程环境下,需要使用双重检查锁定等方法来保证线程安全。在实际应用中,单例模式通常用于控制资源的使用,例如控制数据库连接池、线程池等。