Singleton 保证一个类仅有一个实例,并提供一个访问它的全局访问点。
类图:
方法1:
public class Singleton {
private static Singleton instance = new Singleton();
private Singleton() {
}
public static Singleton newInstance() {
return instance;
}
}
方法2: 延迟方式, 在多线程环境下需要同步
public class Singleton {
private static Singleton instance;
private Singleton() {
}
public synchronized static Singleton newInstance() {
if(instance == null) {
instance = new Singleton();
}
return instance;
}
}
方法3: 延迟方式
public class Singleton {
static class SingletonHolder {
static Singleton instance = new Singleton();
}
public static Singleton getInstance() {
return SingletonHolder.instance;
}
}
方法4:Java 枚举实现Singleton
public enum Singleton {
SINGLETON;
Singleton() {
}
}
返回 模式与重构