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