UML - 关于子项的父项与父项属性的子项列表

时间:2016-09-23 02:15:40

标签: uml

如何从类图中判断1对N的关系是否意味着每个孩子的父母或父母的孩子列表?或两者兼而有之?

例如。如果有一个客户端和一个客户端有订单,那么无论如何都要从UML类图中告诉以下实现是什么情况?

class Client {
    array orders;
}

class Order {}

class Client {}
class Order { 
   client parent; 
}

1 个答案:

答案 0 :(得分:6)

如果UML关联只是一行,那么你无法分辨。但有两种方法可以描述UML的差异。最常见的方法是显示箭头。这表明UML称之为“导航性”。拥有该引用的类指向引用的类。您提到的第一个替代方案将描述如下:

arrow

导航箭头指定可以从客户端有效访问订单,无论这种情况如何以及为何如此。

在最新版本的UML规范中,引入了点符号。拥有引用的类在关联线的另一侧有一个点(参见UML 2.5规范第11.5.4节)。您提到的第一个替代方案将描述如下:

dot

dot指定Client具有属性,该属性是Orders的列表/数组。因为这是一种相对较新引入的符号,所以没有广泛使用。

你可以将点和箭结合起来,但我会说一个点意味着可导航性(而不是相反)。