相关疑难解决方法(0)

设计模式:抽象工厂与工厂方法

注意:问题在帖子的末尾.

我已经阅读了有关Abstract Factory vs Factory Method的其他stackoverflow线程.我理解每个模式的意图.但是,我不清楚这个定义.

Factory方法定义了一个用于创建对象的接口,但是让子类决定实例化哪些接口.工厂方法允许类将实例化延迟到子类.

相比之下,抽象工厂提供了一个接口,用于创建相关或从属对象的族,而无需指定其具体类.

- John Feminella

抽象工厂看起来非常相似的工厂方法.我已经绘制了一些UML类来说明我的观点.

注意:

  • 该图来自www.yuml.com,因此它们并不完美.但它是免费服务:).
  • 图表可能不完美.我还在学习GoF设计模式.

工厂方法:

工厂方法

抽象工厂(仅1名成员):

抽象工厂(仅1名成员)

抽象工厂(更多成员):

替代文字

问题:

  1. 如果抽象工厂只有一个创建者和一个产品,它仍然是抽象工厂模式吗?(创建家庭的界面)
  2. 可以从接口创建Factory Method具体创建者还是必须来自类?(类推迟实例化到子类)
  3. 如果抽象工厂只能有一个创建者和一个产品,那么抽象工厂工厂方法之间的唯一区别是前者的创建者是一个接口而后者的创建者是一个类?

language-agnostic uml design-patterns factory-method abstract-factory

141
推荐指数
3
解决办法
6万
查看次数