实现单例模式:懒汉模式和饥汉模式;
时间: 2023-06-29 15:11:31 浏览: 109
单例模式是一种设计模式,用于保证一个类只有一个实例,并提供一个全局访问点。实现单例模式有两种常见方式,即懒汉模式和饥汉模式。
懒汉模式是指在需要使用时才创建实例,而饥汉模式则是在类被加载时就创建实例。下面分别介绍这两种单例模式的实现方式。
1. 懒汉模式
懒汉模式的特点是在需要使用时才创建实例,这样可以节省资源,但是需要考虑多线程并发访问的安全性。以下是一个线程安全的懒汉模式实现:
```
public class Singleton {
private static Singleton instance;
private Singleton() {}
public static synchronized Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
```
在这个实现中,getInstance() 方法使用了 synchronized 关键字,确保了多线程安全。
2. 饥汉模式
饥汉模式的特点是在类被加载时就创建实例,这样可以保证在任何时候都有一个实例可用,但是可能会浪费资源。以下是一个简单的饥汉模式实现:
```
public class Singleton {
private static Singleton instance = new Singleton();
private Singleton() {}
public static Singleton getInstance() {
return instance;
}
}
```
在这个实现中,instance 是在类被加载时就创建的,因此可以保证在任何时候都有一个实例可用。
阅读全文