单例模式(Singleton Pattern)是一种设计模式,确保一个类只有一个实例,并提供一个全局访问点来访问该实例。单例模式通常用于控制资源的共享,例如数据库连接池、日志记录器、配置管理等。
以下是一个懒汉式单例模式的示例代码:
public class Singleton {
private static Singleton instance;
private Singleton() {
// 私有构造函数,防止外部实例化
}
public static synchronized Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
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;
}
}
public enum Singleton {
INSTANCE;
public void doSomething() {
// 业务逻辑
}
}
synchronized
关键字或双重检查锁定来确保线程安全。Serializable
接口,并重写readResolve
方法来防止序列化和反序列化时创建新的实例。public class Singleton implements Serializable {
private static final long serialVersionUID = 1L;
private Singleton() {
// 私有构造函数,防止外部实例化
}
public static Singleton getInstance() {
if (instance == null) {
synchronized (Singleton.class) {
if (instance == null) {
instance = new Singleton();
}
}
}
return instance;
}
protected Object readResolve() {
return getInstance();
}
}
希望这些信息对你有所帮助!
没有搜到相关的文章