Java学设计模式之单例模式

单例模式是一种设计模式,旨在确保类只有一个实例,并提供一个全局访问点以访问该实例。这在某些情况下非常有用,例如需要全局访问某些资源或配置时,或者在整个应用程序中只需要一个实例时。

在Java中,实现单例模式有多种方式,其中最常见的包括懒汉式、饿汉式和双重检查锁定。

  1. 懒汉式(Lazy Initialization):在首次使用时创建实例。
public class Singleton {

    private static Singleton instance;

    private Singleton() {}

    public static synchronized Singleton getInstance() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }

}
  1. 饿汉式(Eager Initialization):在类加载时就创建实例。
public class Singleton {

    private static final Singleton instance = new Singleton();

    private Singleton() {}

    public static Singleton getInstance() {
        return instance;
    }

}
  1. 双重检查锁定(Double-Checked Locking):结合了懒汉式和饿汉式的优点,在首次使用时创建实例,并使用双重检查锁定确保线程安全。
public class Singleton {

    private volatile static Singleton instance;

    private Singleton() {}

    public static Singleton getInstance() {
        if (instance == null) {
            synchronized (Singleton.class) {
                if (instance == null) {
                    instance = new Singleton();
                }
            }
        }
        return instance;
    }

}

这些实现方式都可以确保在多线程环境下获取到的实例是唯一的。需要根据具体情况选择最适合的方式。

posted @ 2024-05-09 09:38  启航黑珍珠号  阅读(6)  评论(0编辑  收藏  举报