enum实现的单例是effective java中比较推荐的做法
上代码
public class enumSingleton {
private static boolean flag = true;
private enumSingleton() {
synchronized (enumSingleton.class) {
if (flag) {
flag = !flag;
}else{
throw new Error("单例模式被侵犯!");
}
}
}
public static enumSingleton getInstance(){
return singleEnum.SINGLETON.getInstance();
}
private enum singleEnum{
SINGLETON;
private enumSingleton singleton;
//jvm保证枚举的构造方法只被调用一次
singleEnum(){
singleton = new enumSingleton();
}
private enumSingleton getInstance(){
return singleton;
}
}
}
简单测试一波

本文介绍了一种基于枚举实现的单例模式,这种方法在《Effective Java》一书中得到推荐。通过枚举来实现单例可以利用 JVM 对枚举类型的天然支持,确保实例创建的唯一性和线程安全性。
1473





