设计模式单例模式:5-单元素枚举类模式
Posted Gerrard_Feng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式单例模式:5-单元素枚举类模式相关的知识,希望对你有一定的参考价值。
思想:
这是 Effective Java 极力推荐的一种,代码为各种实现中最简单的。
1 public enum EnumSingleton { 2 3 INSTANCE; 4 5 }
其实现,完全是基于枚举类的特性,可以说天生受到了 JVM 的支持,而且既不用思考反射,也不用考虑多线程,对于自身的循环引用,本质上也是一个对象。
1 @Test 2 public void test() throws Exception { 3 EnumSingleton singleton1 = EnumSingleton.INSTANCE; 4 EnumSingleton singleton2 = EnumSingleton.INSTANCE; 5 @SuppressWarnings("static-access") 6 EnumSingleton singleton3 = EnumSingleton.INSTANCE.INSTANCE; 7 Assert.assertSame(singleton1, singleton2); 8 Assert.assertSame(singleton1, singleton3); 9 }
但是劣势也很明显,而且也是由枚举类带来的:枚举类不支持继承和实现,所以在某些场景下不能使用。
以上是关于设计模式单例模式:5-单元素枚举类模式的主要内容,如果未能解决你的问题,请参考以下文章