通过ROSE Design Pattern 自动生成工具和传统GOF比较的疑惑

03-03-30 softquery

以下为ROSE生成(图1)的Factory Method的UML图,其中factoryMethod在每一个Concrete Creator中都有,对于其用途可能有两种: 1 只是生成对应的Product(如果是这样,那向图2中的getProduct方法在哪里实现?) 2 和图2的getProduct方法作用相同(如果是这样,应该不用每个Creator子类都有)

请解释图1的facotryMethod的真正用途,和图1如何实现将FactoryMethod的思想 (如通过参数和其它方法,实例化不同的Productor),多谢了

banq
2003-03-31 14:41

图一我认为其实是GOF的抽象工厂。

mem_fox
2003-04-01 12:46

通过不同的Factory得到不同的产品对象,这样就可以不用指明需要的产品类型了,不象Factory方法中需要用类反射或者if判断返回不同的产品对象!!

你可以去看看Log4j里面对Logger和LoggerFactory的设计就是这样的

fanrenII
2003-04-01 16:41

我也觉得是一个抽象工厂,只不过是它的Product系列缩了水而已