Questions tagged «abstract-factory»


16
抽象工厂和工厂设计模式之间有什么区别?
我知道有很多关于这两种模式之间差异的文章,但是有些事情我找不到。 从我所阅读的内容中,我看到工厂方法模式允许您定义如何创建单个具体产品,但是对客户端隐藏了实现,因为他们将看到通用产品。我的第一个问题是关于抽象工厂。它的作用是允许您在其中创建具体对象系列(具体取决于您使用的特定工厂),而不仅仅是单个具体对象?抽象工厂是否仅根据调用的方法返回一个很大的对象或一个很大的对象? 我的最后两个问题是关于一个引号,我无法完全理解我在很多地方都看到过的情况: 两者之间的区别是,在使用抽象工厂模式时,一个类通过组合将对象实例化的责任委托给另一个对象,而工厂方法模式则使用继承并依赖于子类来处理所需的对象实例化。 我的理解是,工厂方法模式具有一个Creator接口,它将使ConcreteCreator负责知道要实例化哪个ConcreteProduct。这是使用继承处理对象实例化的意思吗? 现在关于那句话,抽象工厂模式究竟如何通过组合将对象实例化的职责委托给另一个对象?这是什么意思?在我看来,抽象工厂模式似乎也使用继承来完成构建过程,但是我仍然在学习这些模式。 任何帮助,特别是最后一个问题,将不胜感激。


10
设计模式:抽象工厂与工厂方法
注意:问题在帖子末尾。 我已经阅读了有关Abstract Factory vs Factory Method的其他stackoverflow线程。我了解每种模式的意图。但是,我对该定义不清楚。 Factory Method定义了一个用于创建对象的接口,但是让子类决定要实例化的对象。工厂方法使类将实例化延迟到子类。 相比之下,抽象工厂提供了一个接口,用于创建相关或相关对象的族,而无需指定其具体类。 - 约翰·费米内拉 该抽象工厂看起来非常相似的工厂方法。我画了一些UML类来说明我的观点。 注意: 该图来自www.yuml.com,因此它们的方向不完全正确。但它是免费的服务:)。 这些图可能并不完美。我仍在学习GoF设计模式。 工厂方法: 抽象工厂(仅1个成员): 抽象工厂(更多成员): 问题: 如果抽象工厂只有一个创作者和一个产品,那么它仍然是抽象工厂模式吗?(用于创建家族的界面) 可以从接口创建Factory Method具体创建器,还是必须从类创建它?(类将实例化延迟到子类) 如果抽象工厂只能有一个创建者和一个产品,那么抽象工厂和工厂方法之间的唯一区别是前者的创建者是一个接口,后者的创建者是一个类吗?

14
为什么我们需要抽象工厂设计模式?
大多数定义说: 抽象工厂提供了用于创建相关对象族的接口,而无需指定其具体类 抽象工厂模式的用途是什么,因为我们可以通过创建具体类本身的对象来完成任务。为什么我们有一个工厂方法来创建Concrete类的对象? 请提供任何我必须实现abstractFactory模式的现实示例?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.