1
6
在本例中,我相信您希望同步getInstance()方法,以确保两个线程不会同时进入它。否则,两个线程可能会在实例化singleton的块中结束,这是非常有问题的。此解决方案的唯一问题是,每次调用getInstance()时,都要为方法的同步支付额外费用。 例子:
或者,如果初始化成本较低(既保证并发性,又不为调用getInstance()方法支付同步惩罚),则还可以切换到使用单例实例的紧急初始化,而不是延迟初始化。 例子:
最优化的方法是使用双重检查锁定,您需要Java 1.5或更新的,因为在1.4或更旧的JVM中易失性关键字的实现不同(请参阅由O'ReLyLediaInc.出版的第5章P.182)。我第一次读到这个。) 例子:
|
2
4
“…为创建单例类实例的对象创建接口。这本质上是GOF书中抽象工厂、工厂方法和函子模式的结合。”
|
3
3
你应该打电话给你的
Singleton
|
4
2
您可以实现如下单例:
这个类可以在您想要的每个工厂方法中返回,就像前面描述的mepcotterell一样。 |
5
0
这个例子不是一个正式的工厂模式(gof),但是如果您像 Static Factory Method
|