猿问
下载APP

为什么我们需要抽象工厂设计模式?

为什么我们需要抽象工厂设计模式

大多数定义说:

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

抽象工厂模式的用途是什么,因为我们可以通过创建具体类本身的对象来实现任务。为什么我们有一个工厂方法来创建Concrete类的对象?

请提供我必须实现abstractFactory模式的任何现实生活示例?


宝慕林4294392
浏览 53回答 3
3回答

元芳怎么了

抽象工厂模式的用途是什么,因为我们可以通过创建具体类本身的对象来实现任务。为什么我们有一个工厂方法来创建Concrete类的对象?如果没有抽象工厂,客户需要了解具体类的详细信息。这种紧耦合已经被抽象工厂删除了。现在,Factory Method公开了一个客户必须使用的合同。您可以通过添加新产品向工厂添加更多产品,这些产品实现了Factory Method公开的界面。意图:提供用于创建相关或从属对象族的接口,而无需指定其具体类。您可以从这篇来源文章中了解抽象工厂模式的意图,结构,清单和经验法则。清单:确定平台独立性和创建服务是否是当前的痛苦根源。绘制平台与产品的矩阵。定义由每个产品的工厂方法组成的工厂接口。为每个平台定义工厂派生类,该类封装了对new运算符的所有引用。该客户端应该退休的所有引用新的,并使用工厂方法来创建产品对象。

慕仰8121524

我认为抽象工厂模式有一个地方而不是简单的工厂模式,在那里你的实例化非常复杂,对于单个工厂来说太复杂和丑陋,而且对于UI来说太复杂了。假设这是一个TYPE_A品牌,而不是一个单独的类..假设有一个100种类型的类型A类的家族,你需要从它们实例化一个对象。想象一下,为了从许多相似类型的对象品牌中制作正确的对象,需要一个细节复杂的信息,在这个对象实体中,您需要确切地知道要调整哪些参数以及如何调整它们。在这个品牌的特殊工厂中,我们将让他们区分并获得确切的实例对象,以及如何实例化它。我们将知道根据网络的输入(让我们说在线商店中可用的颜色),以及在后台运行的其他应用程序和服务(参数UI不知道它们)。也许明天我们将有另一个家庭让我们说type_B和type_C来实例化。因此UI将有“if else”来知道用户是否想要“type_A”,“type_B”或“type_C” - 但工厂类将确定要从类型(来自系列)构建哪个类,以及如何调整它 - 设置其参数的值,或发送给其承包商。所有这些 - 根据UI不知道的许多参数。所有这些对于单个工厂类来说太过分了。

慕容708150

当客户端不确切知道要创建的类型时,此模式特别有用。举个例子,假设专门销售手机的陈列室可以查询三星生产的智能手机。在这里,我们不知道要创建的对象的确切类型(假设手机的所有信息都以具体对象的形式包装)。但我们知道我们正在寻找由三星制造的智能手机。如果我们的设计具有抽象工厂实现,则实际可以使用此信息。在C#中理解和实现抽象工厂模式
打开App,查看更多内容
随时随地看视频慕课网APP
我要回答