概念:
单例模式是一种常用的软件设计模式,通过单例模式可以保证系统中一个类只有一个实例。
Java中单例模式定义:“一个类有且仅有一个实例,并且自行实例化向整个系统提供。
单例模式特点:
- 单例类只能有一个实例。
- 单例类必须自己创建自己的唯一实例
- 单例类必须给所有其他对象提供这一实例。
单例模式的两种实现:
饿汉式:
public class SingleInstance {
private static final SingleInstance ourInstance = new SingleInstance();
private SingleInstance() {
}
public static SingleInstance getInstance() {
return ourInstance;
}
}
懒汉式:
public class SingleInstance {
private static volatile SingleInstance singleInstance = null;
private SingleInstance() {
}
public static SingleInstance getSingleInstance() {
if(singleInstance == null){
synchronized (SingleInstance.class){
if(singleInstance == null){
singleInstance = new SingleInstance();
}
}
}
return singleInstance;
}
}