uml到java代码转换约定

时间:2012-02-20 17:30:15

标签: java class coding-style uml convention

The uml class diagram of a car store

请忽略任何其他箭头,不包括单个简单箭头,其中1..1或类似的东西写在最后

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

当两个类由一条线连接而没有箭头且1..1,1 ... *等写在行尾时,则

假设在加入buyPlan和User的行结束时,该术语为1 .. *不为0 .. *

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

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

那么哪种惯例是最广泛使用的还是标准的?

2 个答案:

答案 0 :(得分:1)

你在看的是bi-directional association。这意味着约定(1)适用于这种关系。如果该关联有一个箭头,那么第二种方法将适用。

"0..*"非常重要,因为用户可以没有参考购买计划(即其PurchasePlan数组可以为空)。每个PurchasePlan中相应的User字段仍然需要填充(非空)以遵守双向关系;这拒绝了“孤儿”购买计划的可能性。

答案 1 :(得分:0)

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