UML图中的关联,聚合和组合

时间:2013-05-20 09:19:11

标签: database associations uml aggregation composition

所以我对UML图中的关联,聚合和组合有一些疑问。以下是一些场景:

  1. 产品评论评分组成产品评审。这意味着对于每个产品评论评级必须有产品评审吗?如果不存在产品评论,则评审评级没有意义。

  2. 客户NRIC与推车和订单相关联。我们不能使用聚合,因为如果客户不存在,也不能存在购物车和订单。

  3. 有人可以帮我检查一下我的关系是否正确吗?将所有表与关联链接起来是否合适,因为我对聚合和关联感到困惑。我不知道何时使用它。

    enter image description here

    如果我错了,请纠正我。提前谢谢。

1 个答案:

答案 0 :(得分:1)

请看一下这个类图示例:class diagram 1

组合声明所有权协会。人拥有腿和手。或者其他方式,手属于人。

现在问问自己,您将如何描述模型中的每个关系。如果您要说Product review rate owns a Product reviewProduct review belongs to a Product review rate,那么您的图表就可以了。如果所有权的方向相反(Product review rate belongs to Product review,那么钻石必须转到协会的另一边。

同样的事情适用于聚合。如果协会以某种方式声明所有权,那么钻石必须转到所有者类的一边。

聚合和组合之间的区别在于,拥有作为复合体的对象无法在没有所有者的情况下创建,因此通常它们是由其所有者创建的。这些物品在其所有者被摧毁时被销毁,在其所有者死亡后不能被其他所有者使用。聚合关联拥有的对象可以在没有其所有者的情况下创建,并且可能比他更长,并且可以为另一个所有者提供服务。