何时使用抽象工厂以及何时使用工厂方法?

时间:2010-01-13 08:05:00

标签: design-patterns oop

有人可以给我一个明确的样品,说明何时最适合使用de AF而不是FM设计模式?

AF:抽象工厂 FM:工厂方法

最佳,

2 个答案:

答案 0 :(得分:1)

抽象工厂是指您想要控制在它们之间具有一对一映射的对象组或族系列的创建。
例如一个窗口可以是SwingWindow,AWTWindow或SomeGUIFrameworkWindow。同样地,你可以拥有每个家庭中存在的按钮,窗格,控件 您可以使用abstractfactory的正确实现来创建正确的对象。 例如如果你想交换Swing for AWT,你只需换掉工厂对象,其他一切就可以了。

http://en.wikipedia.org/wiki/Abstract_factory_pattern(参见示例)

您可以在工厂方法中控制一种对象的创建。

答案 1 :(得分:0)

  • FM:最常用于反序列化: 根据串行输入创建类。
  • AF:应用程序最常用的 灵活,如此不同 工厂可以给出不同的 内部的行为 应用程序框架。

根据我的回答,可能很清楚我对FM更熟悉(实际上,参数化的工厂方法,但我觉得这是最常用的FM)。