Java 中枚举类型实现单例

从Java1.5开始,可以使用枚举类型实现单例。

public class EnumSingleton {

    public static EnumSingleton getInstance() {
        return Elvis.INSTANCE.getInstance();
    }

    private enum Elvis {
        INSTANCE;
        private EnumSingleton singleton;

        Elvis() {
            singleton = new EnumSingleton();
        }

        private EnumSingleton getInstance() {
            return singleton;
        }
    }
}

Elvis 下的INSTANCE可以替换为其他命名规范的单词,不一定是INSTANCE,但是为了书写规范,建议写成INSTANCE

外部调用方法:

EnumSingleton enumSingleton = EnumSingleton.getInstance();

扩展一下,我们可以利用枚举的这种特性,在枚举的构造函数里初始化一些数据。

猜你喜欢

转载自blog.csdn.net/qin_shi/article/details/80563733