首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >抽象工厂

抽象工厂
EN

Stack Overflow用户
提问于 2014-12-13 22:42:48
回答 1查看 154关注 0票数 0

我正在读一本书,名为“头第一设计模式”。我对抽象工厂模式感到困惑。据说,抽象工厂提供了一个接口,用于在不指定具体类的情况下创建相关或依赖对象的系列。这也是与Factory Method.The不同的一点,作者给出了一个NYPizzaIngredientFactory示例,它是一个具体的子类,可以通过调用类中的一些方法(例如createDough()、createSauce())来创建产品系列。但是,我认为为了创建一个特殊的Sauce,类必须依赖于具体的类,如PlumTomato Sauce或Marirana Sauce。这意味着抽象工厂必须为这些对象指定具体的类。我觉得是对的吗?请帮帮忙。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-13 22:46:39

抽象工厂本身不需要指定任何具体的类,因为它是抽象的--它没有实现代码。

当然,抽象工厂的实现是这样的。但是:

  • 他们不需要告诉工厂的用户他们会成为什么样的人,工厂的用户也不必关心他们会成为什么样的人。如果您请求一个Sauce,那么您肯定会收到一些可以用作Sauce的东西。
  • 由于前者,工厂实现生成的实际具体类是实现细节,无需更改使用代码即可更改。
  • 创建工厂的代码并不是使用工厂的(唯一)代码。因此,工厂实施的选择本身就是一个独立的问题。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27464425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档