天天看点

剑指OFFER001单例模式

1.单例模式的作用

单例模式保证某个类只有一个实例,而且自行实例化并向整个系统提供这个实例;

2.单例模式的特点:

(1)单例类只能有一个实例;

(2)单例类必须自己创建自己唯一实例;

(3)单例类必须给所有其他对象提供这一实例;

3.单例模式的用途

一般用于线程池、缓存、日志对象、对话框、驱动程序等;

4.单例模式的实现

4.单例模式的实现

public class Singleton {
private static Singleton ourInstance;

public synchronized static Singleton getInstance() {
if (null == ourInstance) {
ourInstance = new Singleton();
}
return ourInstance;
}

private Singleton() {}
}
           

步骤:

(1)声明类的实例化对象;

(2)设计获得实例化对象的方法(getInstance);

(3)判断对象是否在内存空间中存在;

(4)如果不存在,新建一个对象,并返回该对象;

(5)如果存在,则返回对象;

(加锁是为了保证线程安全,不发生抢占事件)