单利模式 恶汉与懒汉
时间: 2023-10-08 14:06:26 浏览: 99
单例模式是一种设计模式,它保证一个类只有一个实例,并提供了全局访问点。
在单例模式中,恶汉(Eager)和懒汉(Lazy)是两种常见的实现方式。
恶汉式单例模式在类加载时就创建了单例对象,因此可以保证线程安全。例如:
```java
public class EagerSingleton {
private static final EagerSingleton INSTANCE = new EagerSingleton();
private EagerSingleton() {}
public static EagerSingleton getInstance() {
return INSTANCE;
}
}
```
懒汉式单例模式在第一次调用获取单例对象的方法时才创建单例对象,因此可能会存在线程安全问题,需要加锁或使用双重校验锁等方式保证线程安全。例如:
```java
public class LazySingleton {
private static LazySingleton INSTANCE = null;
private LazySingleton() {}
public static synchronized LazySingleton getInstance() {
if (INSTANCE == null) {
INSTANCE = new LazySingleton();
}
return INSTANCE;
}
}
```
另外还有基于静态内部类、枚举等方式实现的单例模式,具体实现方式可以根据实际需求进行选择。
阅读全文