UML:有人可以为我解释工厂方法图吗?

时间:2009-06-17 23:22:38

标签: design-patterns uml factory-method

我不知道从ConcreteCreator到ConcreteProduct的断箭是什么意思。我在网上搜索,我想出了“依赖”。有人可以解释外行人的依赖吗?谢谢!

alt text

http://www.dofactory.com/Patterns/PatternFactory.aspx

抓取的图片

4 个答案:

答案 0 :(得分:3)

正如您所说,虚线表示ConcreteCreator(作为依赖或客户,元素)和ConcreteProduct(作为独立或供应商元素)之间的依赖关系。

在这种特定情况下,该行表示ConcreteCreator负责创建ConcreteProduct的实例。通过将“create”构造型附加到依赖项,可以更清楚地了解这一点。

答案 1 :(得分:2)

虚线/空箭头表示依赖关系,这意味着ConcreteCreator以某种方式“使用”ConcreteProduct。箭头本身不定义该依赖项的性质,只是存在依赖项,而ConcreteProduct实际上不是ConcreteCreator的成员。

提供的注释(即“返回新的ConcreteProduct”)意味着ConcreteCreator将实例化(或创建)ConcreteProduct类型的对象,这对于工厂来说是很自然的。传统上在UML中,您可以通过编写“<< creates>>”来阐明这种关系。在虚线箭头上。 UML将这些注释称为“刻板印象”。

有关详细信息,请参阅Allen Holub's UML Quick Reference。你可以看到他有一个非常类似的例子,其中“用户”创建“资源”。

答案 2 :(得分:1)

我认为这意味着ConcreteCreator必须知道ConcreteProduct是什么来创建它的,所以那里有一个明确的依赖。工厂方法创建一个Product,但该方法的ConcreteCreator覆盖必须返回一个ConcreteProduct。

答案 3 :(得分:0)

这不仅仅是工厂方法 - 这看起来更像是抽象工厂模式。 Creator的特定具体派生类将创建派生Product类的相应实例。