【发布时间】:2009-06-17 23:22:37
【问题描述】:
我不知道从 ConcreteCreator 到 ConcreteProduct 的断箭头是什么意思。我在互联网上搜索,我想出了“依赖”。有人可以用外行的方式解释依赖关系吗?谢谢!
【问题讨论】:
标签: design-patterns uml factory-method
我不知道从 ConcreteCreator 到 ConcreteProduct 的断箭头是什么意思。我在互联网上搜索,我想出了“依赖”。有人可以用外行的方式解释依赖关系吗?谢谢!
【问题讨论】:
标签: design-patterns uml factory-method
正如您所说的那样,虚线表示 ConcreteCreator(作为依赖或客户元素)和 ConcreteProduct(作为独立或供应商元素)之间的依赖关系。
在这种特定情况下,该行表示 ConcreteCreator 负责创建 ConcreteProduct 的实例。通过将“创建”构造型附加到依赖项可以更清楚地说明这一点。
【讨论】:
虚线/空箭头表示依赖项,表示 ConcreteCreator 以某种方式“使用”ConcreteProduct。箭头本身并没有定义依赖的性质,只是存在依赖并且 ConcreteProduct 实际上不是 ConcreteCreator 的成员。
提供的注释(即“return new ConcreteProduct”)暗示 ConcreteCreator 将实例化(或创建)ConcreteProduct 类型的对象,这对于工厂来说是很自然的。传统上,在 UML 中,您可以通过在虚线箭头上写“>”来阐明这种关系。 UML 将这些注释称为“刻板印象”。
请参阅Allen Holub's UML Quick Reference 了解更多信息。你可以看到他有一个非常相似的例子,“用户”创建“资源”。
【讨论】:
我认为这意味着 ConcreteCreator 必须知道 ConcreteProduct 是什么才能创建它,因此那里存在显式依赖关系。工厂方法创建一个 Product,但该方法的 ConcreteCreator 覆盖必须返回一个 ConcreteProduct。
【讨论】:
这不仅仅是工厂方法 - 这看起来更像是抽象工厂模式。 Creator 的具体具体派生类将创建派生 Product 类的相应实例。
【讨论】: