请高人指点一下"双重检查成例"

05-04-28 doowee
在研读JIVE代码时注意到在ForumFactory.java中

使用了双重检查成例,如下:

public abstract class ForumFactory {

private static Object initLock = new Object();

private static ForumFactory factory = null;

public static ForumFactory getInstance(Authorization authorization) {

...

if (factory == null) {

synchronized(initLock) {

if (factory == null) {factory =...}

}

}

}

}

但是在《JAVA与模式》中阎老师说:"双重检查成例"在JAVA中不能实现,

原因是factory 赋值与类初始化顺序不确定.

是不是类是abstract的就可以使用双重检查成例。谢谢!

banq
2005-05-02 20:43
查看本站 设计模式 单态模式的英文介绍。

猜你喜欢