【问题标题】:Why use an abstract factory为什么要使用抽象工厂
【发布时间】:2015-12-21 08:11:17
【问题描述】:

试图弄清楚工厂和抽象工厂之间的区别。

据我了解,当我想创建具有相同属性但类型不同的对象时,我会使用工厂(例如 - 我想拥有 10 匹马,它们的体重、身高和年龄相同,但它们的名称应该不同)。

所以我创建了一个接口(或者可能是抽象类?),它已经处理了体重、身高和年龄,当我想创建一匹新马时,只需输入名称即可。

假设我想给马添加颜色属性。这会是使用抽象工厂的好理由吗?我将获得 2 家工厂 - 一家生产黑马,一家生产棕色马。这有意义吗?

【问题讨论】:

    标签: abstract-factory


    【解决方案1】:

    抽象工厂模式围绕着创建一个工厂来构建其他工厂。因此,当您知道要构建例如马、牛和可能还有猪和羊的场景时,您宁愿使用它来遵循您的类比。鉴于它们都是农场动物,它们可能会共享很多属性,因此它们的工厂在某种意义上应该是相似的,因此您可以创建工厂工厂来生产骨架“农场动物工厂”。

    您现在可以从这里生产马工厂、奶牛工厂以及您需要的任何其他东西。

    所以基本上它进一步抽象了工厂的概念,这样你就可以使用模板的方式来创建对象,以及将产生它们的工厂......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-21
      • 2011-05-18
      • 1970-01-01
      • 2018-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多