以下是一个使用Java语言实现的单例设计模式的案例:

public class Singleton {
    private static Singleton instance;

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

    // 获取单例对象的方法
    public static Singleton getInstance() {
        if (instance == null) {
            // 在多线程环境下,可能会有多个线程同时进入到这里
            // 因此需要使用 synchronized 关键字进行同步
            synchronized(Singleton.class) {
                // 双重检查,确保只有第一个线程创建了实例对象
                if (instance == null) {
                    instance = new Singleton();
                }
            }
        }
        return instance;
    }

    // 其他业务方法
    public void doSomething() {
        System.out.println("Singleton instance is doing something.");
    }
}

在上述案例中,Singleton类的构造函数被声明为私有,以防止外部代码直接通过new Singleton()来实例化对象。通过getInstance()方法获取Singleton类的单例对象。

getInstance()方法中,使用了双重检查的方式来确保只有第一个线程创建了实例对象。在多线程环境下,多个线程可能同时通过第一个if语句的判断,因此需要使用synchronized关键字来保证只有一个线程进入临界区创建实例对象。这样可以避免多个线程创建多个实例对象的问题。

使用示例:

public class Main {
    public static void main(String[] args) {
        // 获取单例对象
        Singleton singleton = Singleton.getInstance();

        // 调用业务方法
        singleton.doSomething();
    }
}

输出结果:

Singleton instance is doing something.
``
用Java语言写个单例设计模式的案例

原文地址: http://www.cveoy.top/t/topic/hKIS 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录