【发布时间】:2010-05-25 11:56:29
【问题描述】:
我正在研究 Guice,最近一直在阅读它的文档。
阅读motivation 部分我不明白工厂部分,为什么他们这样命名。对我来说,工厂只是他们希望在调用 getInstance() 后返回的实现类的包装器。
public class CreditCardProcessorFactory {
private static CreditCardProcessor instance;
public static void setInstance(CreditCardProcessor creditCardProcessor) {
instance = creditCardProcessor;
}
public static CreditCardProcessor getInstance() {
if (instance == null) {
throw new IllegalStateException("CreditCardProcessorFactory not initialized. "
+ "Did you forget to call CreditCardProcessor.setInstance() ?");
}
return instance;
}
}
如果它既不是抽象工厂也不是工厂方法(至少正如 GoF 最初定义的那样),为什么还要称它为工厂?还是我错过了什么?
谢谢。
编辑:如果有人想出更好的标题,我会很高兴更改它。
【问题讨论】:
标签: java design-patterns dependency-injection guice