我已经实现了一个像这样的抽象工厂
public abstract class AbstractFactory {
private static final Map FACTORIES = new HashMap();
AbstractFactory(FactoryType type) {
FACTORIES.put(type, this);
}
public abstract A getA();
public abstract B getB();
public static AbstractCatalogFactory getFactory(FactoryType type) {
return (AbstractCatalogFactory) FACTORIES.get(type);
}
}
具体工厂必须调用此抽象工厂构造函数,导致每个具体实现都在FACTORIES
映射中注册。我有点担心在构造函数中引用this
,因为在构造函数的执行返回之前,它的值似乎this
应该是未定义的。
谢谢,唐