当我阅读Head第一个设计模式时,我发现“抽象工厂依赖于对象组合:对象创建是在工厂界面中公开的方法中实现的”,在抽象工厂章节中。 我怀疑这是抽象工厂如何依赖于对象组合?

如果我将在维基百科中采用该示例,那么GUIFactory是一个接口,WinFactory实现GUIFactory。 然后抽象工厂如何使用组合。 提前致谢。

===============>>#1 票数:3

我认为它们意味着抽象工厂描述了客户端的组合,并且在这个意义上依赖于对象组合。

再举一个例子,抽象工厂BodyCreator定义了createArmcreateLegcreateHead等方法。混凝土工厂可以是DinosaurCreatorHumanCreator 它们生成所有元素以创建复合“body”,以便客户端可以调用这些不同的方法来组成一个,但是它不需要知道它正在构成什么类型​​的主体。 就像在维基百科示例中一样,GUIFactory描述了GUI由哪些元素组成。

为了使它更清楚,他们应该添加更多方法IMO: CheckBox createCheckBox()TextField createTextField()等。

但是,是的,也许'依赖'并不是最好的选择。

===============>>#2 票数:1

恕我直言,一揽子声明就好

Abstract Factory 依赖于对象组合

不准确。 在这种情况下,我的感觉是,在定义Abstract Factory时,这是object composition一词的懒惰或过于广泛的使用。

维基百科的对象组合条目: http//en.wikipedia.org/wiki/Object_composition在此处有用,当它指示:

在计算机科学中,对象组合是一种将简单对象或数据类型组合成更复杂对象的方法。

是否有任何表明抽象工厂/工厂/工厂方法不能返回简单对象或数据类型的东西?

这是一个修辞问题(我认为)。 我找不到任何东西。

  ask by Trying translate from so

未解决问题?本站智能推荐:

2回复

工厂模式和依赖项[重复]

这个问题已经在这里有了答案: 工厂模式。 什么时候使用工厂方法? 15个答案 使用工厂方法可避免违反开闭原理。 而不是通过继承创建对象: 我们使用带有亲属具体工厂的工厂“接口”(实现工厂并重写其方法的类): 我了解了很多有关工厂方法的知识;
3回复

工厂模式混乱

当客户端应用程序请求新对象时,我让Factory类为我创建该新对象。 汽车对象的属性通过调用存储在数据库中的存储过程来填充。 在数据库中,我们存储可以每天更改的默认值。 默认表由外部系统填充。 因此,当工厂(服务层调用)创建Car对象时,工厂类将调用存储库类,然后该存储库类将
2回复

实施工厂模式

目前,我正忙于将Factory Pattern实施到Java代码中。 我有这些课: CipherStorage CipherStorageProcessor(接口) CipherStorageRSA CipherStorageAES CipherStora
3回复

具有继承的工厂模式

在与继承一起使用时,Factory模式出现问题, 这是我的代码 当我运行它时,我无法进入getSound()方法。 它给出了一个错误。 如果我将Animal类定义为Abstract类,这将很好地工作, 但是我要如何处理这样的情况。
2回复

工厂模式还是扩展方法?

我正在研究设计模式,但是我不确定哪种方法更好: 我有一个“类别”类,其中有几个字段:名称,2种url,相关对象列表。 有一种方法“ toHtml()”,该方法基本上从该类的实例生成一些HTML。 有4种类型的“类别”具有完全相同的字段,但“ toHtml()”方法应为每种类型提供不
2回复

避免多个if语句的最干净方法-依赖于许多参数的对象创建

我正在寻找最干净的方法来确定值,而不使用多个if语句(或切换用例)。 例如,我有以下映射表: 如您所见,在确定确切值之前,我需要考虑5个变量。 使用if语句会导致嵌入式ifs噩梦。 我有两个解决方案: 非常脏-地图地图地图地图等: 涉及大量代码:工厂带有导
1回复

将工厂模式应用于两个级别

我想询问在这种情况下是否推荐使用(抽象) Factory Pattern :我有20个Products所有Products都由一个单独的类表示,该类派生自超类BaseProduct 。 Products分为5个Categories ,每个Categories也由一个单独的类表示,该类派生自超类
4回复

Java - 依赖于参数值的方法实现

考虑一种方法 该方法的实现取决于参数的值。 是否有更优雅的方式来执行此操作,或者使用不同的设计模式来复制行为?
1回复

如何在类依赖于实例创建顺序的情况下设计DI

这似乎是一个非常标准的问题,可能以前曾被问过,但是我发现很难找到它,因为很难用语言来定义。 因此,如果这是重复项,请继续重定向我! 我正在使用Vaadin构建此Web应用程序,但这与当前的问题无关紧要,除非有通过Vaadin魔术解决此问题的更好方法。 我有三节课: 表
2回复

工厂方法模式与普通抽象类实现

我试图了解工厂方法模式。 , but now I don't get why it's actually called a "pattern". 我设法将其与区别开来,但现在我不明白为什么它实际上被称为“模式”。 请看下面我的例子: 类图链接 Messenger的示例Jav