隐含的基数 class 是否应该有关联?
Should there be an association for the base class when it's implied?
我正在尝试为一个非常简单的场景制作 UML class 图。考虑以下代码:List<Food> foods = {new Tomato(), new Pizza()};
作为 class A 的字段。显然,class A 在 Tomato 和 Pizza 之间有关联,但它也应该在 Food 之间有关联吗?
当然,Tomato 和 Pizza 是从 Food 扩展而来的 :)
看不到更多细节很难。
您的 food
是一个 0..n
多重关联。
Tomato
和 Pizza
在该代码中都没有明确的关联。所以这只是一个依赖。
关联是一种更强的依赖形式(草率的定义)。其实你可以创建一个协会。这取决于未知的细节。如果你的注意力集中在列表上并且你想要其中的任何子classed食物,你不会将关联与这些子class中的每一个联系起来,而只会与父class Food
。
如前所述:这完全取决于设计模板,模板中的细节需要更多 beefy。
我会说你的 ClassA
与 Food
有结构关系(关联)。
因为它也调用 Tomato
和 Pizza
的构造函数,所以它依赖于 类.
List<Food>
等泛型的使用在 UML 中始终是一个挑战,因为泛型的语义在不同的编程语言中并不相同。
这里,字段foods
of class A
表示有一个navigable association from A
to Food
. And Tomato
and Pizza
are specializations of Food
(根据你使用的术语“ 延长"):
补充说明:
association与Food
,因为类型是List<Food>
,A
和[=15=之间没有直接耦合] 或 Pizza
。
请记住,class 图表显示的是一般情况,而不是特定场景 与单个对象(这是目的前者 object diagram)。
使用列表说明关联可以是0 or moreFood
。但是我们不知道一个 Food
对象是否可以被多个 A
使用(如果 Food
是引用类型,那么多个在理论上是可能的):因此多重性未指定A
侧。
基于语义,您可以考虑将关联设为composition or an aggregation。但无论如何,简单的联想都是正确的。
基于您想要在 A
-to-Food
关联中突出您的设计的内容:
- 你可能更喜欢
Food
端的 dot notation,如果你想强调该协会(又名列表)归 A
所有
- 你可以像我的图表一样使用 navigability notation,如果不太关心当前的实现,只是想表达从 A 访问 Food 应该很容易。
- 如果你想保持这些主题开放,你可以显示上面的 none。
我正在尝试为一个非常简单的场景制作 UML class 图。考虑以下代码:List<Food> foods = {new Tomato(), new Pizza()};
作为 class A 的字段。显然,class A 在 Tomato 和 Pizza 之间有关联,但它也应该在 Food 之间有关联吗?
当然,Tomato 和 Pizza 是从 Food 扩展而来的 :)
看不到更多细节很难。
您的 food
是一个 0..n
多重关联。
Tomato
和 Pizza
在该代码中都没有明确的关联。所以这只是一个依赖。
关联是一种更强的依赖形式(草率的定义)。其实你可以创建一个协会。这取决于未知的细节。如果你的注意力集中在列表上并且你想要其中的任何子classed食物,你不会将关联与这些子class中的每一个联系起来,而只会与父class Food
。
如前所述:这完全取决于设计模板,模板中的细节需要更多 beefy。
我会说你的 ClassA
与 Food
有结构关系(关联)。
因为它也调用 Tomato
和 Pizza
的构造函数,所以它依赖于 类.
List<Food>
等泛型的使用在 UML 中始终是一个挑战,因为泛型的语义在不同的编程语言中并不相同。
这里,字段foods
of class A
表示有一个navigable association from A
to Food
. And Tomato
and Pizza
are specializations of Food
(根据你使用的术语“ 延长"):
补充说明:
association与
Food
,因为类型是List<Food>
,A
和[=15=之间没有直接耦合] 或Pizza
。请记住,class 图表显示的是一般情况,而不是特定场景 与单个对象(这是目的前者 object diagram)。
使用列表说明关联可以是0 or more
Food
。但是我们不知道一个Food
对象是否可以被多个A
使用(如果Food
是引用类型,那么多个在理论上是可能的):因此多重性未指定A
侧。基于语义,您可以考虑将关联设为composition or an aggregation。但无论如何,简单的联想都是正确的。
基于您想要在
A
-to-Food
关联中突出您的设计的内容:- 你可能更喜欢
Food
端的 dot notation,如果你想强调该协会(又名列表)归A
所有
- 你可以像我的图表一样使用 navigability notation,如果不太关心当前的实现,只是想表达从 A 访问 Food 应该很容易。
- 如果你想保持这些主题开放,你可以显示上面的 none。
- 你可能更喜欢