懒汉模式
class LazyMode {
private static volatile LazyMode INSTANCE;
private LazyMode() {
if (INSTANCE != null)
throw new IllegalStateException("无法创建多个实例");
}
public static LazyMode getInstance() {
if (INSTANCE == null)
synchronized (LazyMode.class) {
if (INSTANCE == null)
INSTANCE = new LazyMode();
}
return INSTANCE;
}
}
饿汉模式
class StarvedMode {
private static final StarvedMode INSTANCE = new StarvedMode();
private StarvedMode() {
if(INSTANCE != null)
throw new IllegalStateException("无法创建多个实例");
}
public static StarvedMode getInstance() {
return INSTANCE;
}
}
静态内部类
class StaticInner {
private StaticInner() {
}
private static class Inner {
private static final StaticInner INSTANCE = new StaticInner();
}
public static StaticInner getInstance() {
return Inner.INSTANCE;
}
}
枚举
enum Enumeration {
INSTANCE;
}