码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式(一)单例模式:5-单元素枚举类模式

时间:2017-09-10 19:01:27      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:except   循环   exce   jvm   nbsp   unit   单例模式   singleton   div   

思想:

 

  这是 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     }
JUnit

 

  但是劣势也很明显,而且也是由枚举类带来的:枚举类不支持继承和实现,所以在某些场景下不能使用。

 

设计模式(一)单例模式:5-单元素枚举类模式

标签:except   循环   exce   jvm   nbsp   unit   单例模式   singleton   div   

原文地址:http://www.cnblogs.com/jing-an-feng-shao/p/7501648.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!