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

doowee 05-04-28

在研读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

查看本站 设计模式 单态模式的英文介绍。