所以我对UML图中的关联、聚合和组合有一些疑问。以下是一些场景:
产品评论评级组合到产品评论。这意味着对于每个产品评论评级必须有产品评论?如果不存在产品评论,则评论评级没有意义。
客户 NRIC 关联到购物车和订单。我们不能使用聚合,因为如果客户不存在,购物车和订单也不存在。
有人可以帮我检查我的关系是否正确吗?将所有表与关联联系起来是否很好,因为我对聚合和关联有点困惑。我不知道什么时候使用它。
如果我错了,请纠正我。提前致谢。
所以我对UML图中的关联、聚合和组合有一些疑问。以下是一些场景:
产品评论评级组合到产品评论。这意味着对于每个产品评论评级必须有产品评论?如果不存在产品评论,则评论评级没有意义。
客户 NRIC 关联到购物车和订单。我们不能使用聚合,因为如果客户不存在,购物车和订单也不存在。
有人可以帮我检查我的关系是否正确吗?将所有表与关联联系起来是否很好,因为我对聚合和关联有点困惑。我不知道什么时候使用它。
如果我错了,请纠正我。提前致谢。
看一下这个类图示例以进行组合:
组合声明所有权关联。人拥有腿和手。或者其他方式,Hand 属于 Person。
现在问问自己,您将如何描述模型中的每种关系。如果您会说Product review rate owns a Product review
or Product review belongs to a Product review rate
,那么您的图表就可以了。如果所有权具有相反的方向 ( Product review rate belongs to Product review
,那么钻石必须去关联的另一边。
同样的事情也适用于聚合。如果关联以某种方式声明了所有权,那么钻石必须属于所有者类。
聚合和组合之间的区别在于,作为组合拥有的对象不能在没有所有者的情况下创建,因此通常它们是由其所有者创建的。这些对象在其所有者被销毁时被销毁,在其所有者死亡后它们不能被其他所有者使用。聚合关联所拥有的对象可以在没有其所有者的情况下创建,并且可能比他寿命更长并为另一个所有者服务。