个人感觉单例模式是设计模式中较为简单的模式,网上此种模式的介绍都大同小异,此处只提取重要的记录;
Java中单例模式定义:“一个类有且仅有一个实例,并且自行实例化向整个系统提供。”
单例模式重点就是如何保证实例是单例的:
- 私有的构造函数:有一个私有的无参构造函数,防止其他类实例化它,且单例类也不能被继承。
- 公有的静态方法用来获取单实例的引用(多种实现方式)。
6种实现方式此处不再赘述:
个人偏好方式:
public class Singleton {
private static Singleton instance = new Singleton();
private Singleton (){}
public static Singleton getInstance() {
return instance;
}
}
public class Singleton {
private volatile static Singleton singleton;
private Singleton (){}
public static Singleton getSingleton() {
if (singleton == null) {
synchronized (Singleton.class) {
if (singleton == null) {
singleton = new Singleton();
}
}
}
return singleton;
}
}