李建忠设计模式单例模式
时间: 2024-07-29 07:01:22 浏览: 67
C++设计模式-单例模式
李建忠设计模式中的单例模式是一种常用的软件设计模式,它的目的是确保一个类只有一个实例,并提供全局访问点。这个模式通常用于管理资源,如数据库连接、线程池、日志系统等,需要在整个应用中保持一致性。
在Java中,最常见的单例实现方式有懒汉式和饿汉式:
1. **懒汉式**(Lazy Initialization):这是最常见的实现,创建单例对象的动作延迟到第一次真正需要用到它的时候才进行。通过双重检查锁定(Double-Check Locking)来防止多线程同步问题,例如:
```java
public class Singleton {
private volatile static Singleton instance;
public static Singleton getInstance() {
if (instance == null) {
synchronized (Singleton.class) {
if (instance == null) {
instance = new Singleton();
}
}
}
return instance;
}
}
```
2. **饿汉式**(Eager Initialization):在类加载时就完成了实例化,虽然简单但可能导致早期消耗过多内存,如果不需要的话。例如:
```java
public class Singleton {
private static final Singleton INSTANCE = new Singleton();
private Singleton() {}
public static Singleton getInstance() {
return INSTANCE;
}
}
```
阅读全文