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

Posted Gerrard_Feng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式单例模式:4-静态代码块模式相关的知识,希望对你有一定的参考价值。

思想:

 

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

  但是在 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-静态代码块模式的主要内容,如果未能解决你的问题,请参考以下文章

创建型设计模式--单例模式

23种设计模式之单例模式

单例设计模式之饿汉式(静态代码块)

使用静态代码块来实现单例模式

java设计模式——单例模式

设计模式---单例模式