1

某汽车店的uml类图

请忽略任何其他箭头,除了最后写有 1..1 或类似内容的单个简单箭头

我参考了许多网站和许多介绍 UML 2.0 的书籍,我遇到了两个使用的约定

当两个类通过没有箭头的单行连接并且 1..1、1..* 等写在行尾时,则

假设在加入 purchasePlan 和 User 的行结束时,术语是 1..* 而不是 0..*

1)根据一种约定,我们根据图表在User类中创建PurchasePlan对象的数组,在PurchasePlan中创建一个User对象

2) 根据第二个约定,我们只在 User 中创建 purchaseplan 对象数组,而不在 PurchasePlan 中创建用户对象

那么哪种约定是最广泛使用的还是标准的呢?

4

2 回答 2

1

您正在查看的是双向关联。这意味着约定 (1) 适用于这种关系。如果关联有一个箭头,那么第二种方法将适用。

0..*”的意义在于用户可以没有参考的购买计划(即其 PurchasePlan 数组可以为空)。每个 PurchasePlan 中的相应 User 字段仍需要填充(不为空)以遵守双向关系;这拒绝了“孤立”购买计划的可能性。

于 2012-02-20T17:57:35.243 回答
0

第一个选项将创建一个循环依赖。这是不鼓励的,因为您获得了更高的耦合并且代码的可维护性退化。您的两个选项是在您的用户中创建购买计划的集合或在每个购买计划中创建单个用户。您使用哪一个取决于您的域。问问自己是否必须更频繁地为用户获取所有 PurchasePlan 或相反。

于 2012-02-20T17:40:33.020 回答