📅  最后修改于: 2023-12-03 14:50:28.177000             🧑  作者: Mango
单例设计模式是一种常见的软件设计模式,目的是确保一个类只有一个实例,并提供一个全局访问点。
在以下场景中,使用单例设计模式可以带来一些好处:
懒汉式是指在第一次使用对象时才会创建实例。以下是一个懒汉式单例模式的实现示例:
public class Singleton {
private static Singleton instance;
private Singleton() {}
public static synchronized Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
在以上代码中,getInstance()
方法通过判断 instance
是否为 null,如果为 null 则创建一个新实例,否则直接返回现有实例。
饿汉式是指在类加载时就会创建实例。以下是一个饿汉式单例模式的实现示例:
public class Singleton {
private static Singleton instance = new Singleton();
private Singleton() {}
public static Singleton getInstance() {
return instance;
}
}
在以上代码中,instance
在类加载时就被实例化,因此在多线程环境下也能保证只有一个实例。
双重检查锁定单例模式是对懒汉式的改进,可以提高性能。以下是一个双重检查锁定单例模式的实现示例:
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;
}
}
在以上代码中,使用了双重检查来确保只有一个实例。其中 volatile
关键字用于保证多线程环境下的可见性和有序性。
单例设计模式可以保证一个类只有一个实例,并提供全局访问点。在不同的场景下,可以选择不同的实现方式来满足需求。以上提供的示例代码可以用来参考和学习。