0

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

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

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

有人可以帮我检查我的关系是否正确吗?将所有表与关联联系起来是否很好,因为我对聚合和关联有点困惑。我不知道什么时候使用它。

在此处输入图像描述

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

4

1 回答 1

2

看一下这个类图示例以进行组合:类图1

组合声明所有权关联。人拥有腿和手。或者其他方式,Hand 属于 Person。

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

同样的事情也适用于聚合。如果关联以某种方式声明了所有权,那么钻石必须属于所有者类。

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

于 2013-05-20T09:44:56.297 回答