我认为Pugh先生的版本受到高度重视,因为它仅在
getInstance()被调用时执行单例的实例化,即在加载类(包含getInstance方法的类)时不执行。如果您的单例构造
成本高昂, 那么这可能对您有利。如果您像世界上大多数人那样,单身只是为了避免使用静态方法(并且您还没有进入依赖注入框架),那么我将不会为此沉迷。
如文章所述,Pugh先生的方法比静态实例变量更懒惰-
但实际上,如果加载了Singleton类,则无论如何都将调用getInstance方法。因此,作为计算机科学练习,它是有用的,但在现实世界中,它的好处值得商de。
ps我不太在意Bloch先生在此处的示例,因为使用枚举将是说My Singleton IS-
A枚举,这对我来说听起来并不正确(尤其是从正确地表示从未实现接口的人那里来看)得到常数)



