Java中单例设计模式,请有代码举例 最少3个例子

admin2024-04-03  0

在Java中,单例设计模式确保类只有一个实例,并提供全局访问点。以下是三种常见的单例设计模式的代码示例:

1.懒汉式单例(Lazy Initialization):在第一次被使用时才创建实例。

public class LazySingleton {
    private static LazySingleton instance;

    private LazySingleton() {} // 私有构造方法

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


2.饿汉式单例(Eager Initialization):在类加载时即创建实例。

public class EagerSingleton {
    private static final EagerSingleton instance = new EagerSingleton();

    private EagerSingleton() {} // 私有构造方法

    public static EagerSingleton getInstance() {
        return instance;
    }
}


3.双重检查锁单例(Double-Checked Locking):结合了懒汉式和饿汉式的优点,使用双重检查锁来保证线程安全和延迟加载。

public class DoubleCheckedSingleton {
    private static volatile DoubleCheckedSingleton instance;

    private DoubleCheckedSingleton() {} // 私有构造方法

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

这些是Java中常见的单例设计模式的示例。每种实现方式都有其适用的场景和优缺点,开发者根据具体需求选择合适的单例实现方式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明原文出处。如若内容造成侵权/违法违规/事实不符,请联系SD编程学习网:675289112@qq.com进行投诉反馈,一经查实,立即删除!