温馨提示×

在匿名内部类中如何实现单例模式

小樊
82
2024-09-02 22:52:46
栏目: 编程语言

在Java中,要在匿名内部类中实现单例模式,可以使用静态初始化器和双重检查锁定(Double-Checked Locking)。这里是一个示例:

public class Singleton {
    private static volatile Singleton instance;

    private Singleton() {
        // 私有构造函数,防止外部实例化
    }

    public static Singleton getInstance() {
        if (instance == null) {
            synchronized (Singleton.class) {
                if (instance == null) {
                    instance = new Singleton() {
                        // 匿名内部类实现
                    };
                }
            }
        }
        return instance;
    }
}

在这个示例中,我们使用了双重检查锁定来确保getInstance()方法的线程安全。当第一次调用getInstance()时,会创建一个匿名内部类实例并将其赋值给instance变量。后续的调用将直接返回已创建的实例。

注意,我们使用了volatile关键字来修饰instance变量,以确保多线程环境下的正确性。

0