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

设计模式(一)单例模式:4-静态代码块模式

时间:2017-09-10 19:00:42      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:close   代码块   pre   实现   pen   row   nal   alt   closed   

思想:

 

  这一种单例模式的实现,我本来并不准备单独提出来,因为我认为这种模式,和饿汉模式,没有本质的区别。

  但是在 sun.misc.Unsafe 的源码中却实际应用到了这种设计,所以才特地介绍一下。

  简单的说,就是把初始化的工作,放到静态代码块中。

  由于初始化的时间比饿汉模式更加早,我有个同事把它称之为:难民模式。

 

技术分享
 1 public final class StaticBlockSingleton {
 2 
 3     private static final StaticBlockSingleton instance;
 4 
 5     private StaticBlockSingleton() {
 6         if (instance != null) {
 7             throw new IllegalStateException();
 8         }
 9     }
10 
11     static {
12         instance = new StaticBlockSingleton();
13     }
14 
15     public static final StaticBlockSingleton getInstance() {
16         return instance;
17     }
18 
19 }
静态代码块模式

 

  与饿汉模式相同,不存在多线程及反射打破单例的可能性。

 

设计模式(一)单例模式:4-静态代码块模式

标签:close   代码块   pre   实现   pen   row   nal   alt   closed   

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

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