根据像挥发/懒惰单身人士,急切的单身人士,正常的单身人士以及通过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的初始化通过静态初始化器进行.
静态支架图案也被认为是双重锁定反模式的最佳替代.
