单例模式(Singleton Pattern)是最简单的设计模式之一,保证一个类仅有一个实例,并提供一个访问它的全局访问点。
常见的实现方式
1. 饿汉式 (Hungry)
类加载时就初始化,线程安全,但可能造成资源浪费。
public class Singleton {
private static Singleton instance = new Singleton();
private Singleton() {}
public static Singleton getInstance() { return instance; }
}
2. 懒汉式 (Lazy) + 双重检查锁 (DCL)
延迟加载,线程安全,性能较高。
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;
}
}
3. 静态内部类
利用 Java 类加载机制实现延迟加载,线程安全,推荐使用。
4. 枚举 (Enum)
Effective Java 作者推荐的方式,自动支持序列化机制,防止反射攻击。

发表评论 取消回复