单例模式
单例模式定义如下: 单例模式(Singleton Pattern):确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。单例模式是一种对象创建型模式。
单例模式有三个要点:
- 某个类只能有一个实例;
- 它必须自行创建这个实例;
- 它必须自行向整个系统提供这个实例。
package com.pengpan.designmode.singlemode;
public class SingleMode {
// volatile关键字防止指令重排序
private volatile static SingleMode instance;
// 构造函数私有化
private SingleMode() {};
// 双重校验锁
public static SingleMode getInstance() {
if (instance == null) {
synchronized (SingleMode.class) {
if (instance == null) {
instance = new SingleMode();
}
}
}
return instance;
}
}