根据像挥发/懒惰单身人士,急切的单身人士,正常的单身人士以及通过Enum的情况,我已经开发了单身人士,但具体来说,我想知道如下所示的静态持有人模式单身人士.
public static class Singleton { private static class InstanceHolder { public static Singleton instance = new Singleton(); } private Singleton(){} public static Singleton getInstance() { return InstanceHolder.instance; } }
请指出哪些条件是有益的,它的好处是什么.
解决方法
这种模式至少有三个原因:
>静电厂
>懒惰初始化
线程安全
JVM会延迟初始化InstanceHolder类,直到实际使用,并且由于使用静态初始化程序初始化了Singleton,因此不需要额外的同步.通过任何线程对getInstance的第一次调用会导致InstanceHolder被加载和初始化,此时Singleton的初始化通过静态初始化器进行.
静态支架图案也被认为是双重锁定反模式的最佳替代.