如何从类图中判断1对N的关系是否意味着每个孩子的父母或父母的孩子列表?或两者兼而有之?
例如。如果有一个客户端和一个客户端有订单,那么无论如何都要从UML类图中告诉以下实现是什么情况?
class Client {
array orders;
}
class Order {}
或
class Client {}
class Order {
client parent;
}
答案 0 :(得分:6)
如果UML关联只是一行,那么你无法分辨。但有两种方法可以描述UML的差异。最常见的方法是显示箭头。这表明UML称之为“导航性”。拥有该引用的类指向引用的类。您提到的第一个替代方案将描述如下:
导航箭头指定可以从客户端有效访问订单,无论这种情况如何以及为何如此。
在最新版本的UML规范中,引入了点符号。拥有引用的类在关联线的另一侧有一个点(参见UML 2.5规范第11.5.4节)。您提到的第一个替代方案将描述如下:
dot指定Client具有属性,该属性是Orders的列表/数组。因为这是一种相对较新引入的符号,所以没有广泛使用。
你可以将点和箭结合起来,但我会说一个点意味着可导航性(而不是相反)。