菱形符号在UML类图中表示什么?


73

考虑下面的两个图。上面的一个在右端包含一个普通箭头,而下面的一个在左端包含一个菱形箭头,而在右端包含一个普通箭头。本伟大的书GoF的同时具有这两种图表的用法。

我想了解菱形在第二种情况下表示什么,以及这两种情况中的哪一种在Customer和之间具有更强的关联性Order

在这两种情况下CustomerOrder班级是否负责班级的生命周期?

在此处输入图片说明 在此处输入图片说明

Answers:


102

如果没有钻石,那么我们有一个简单的关联

如果菱形为,则表示它是聚集体。这种关系比简单的关联更强大。在这种情况下,客户汇总订单。

如果钻石是黑色的,则表示它是一种成分,它比聚合更强,因为聚合的类别不能由其他类别聚合。它的“寿命”取决于容器。

我认为它的解释更加清楚了:


20

顾客和订单是“具有”的组成关系,因为如果顾客不复存在,那么他/她的订单也就不存在了。因此,容器(客户)与该容器内的实例(订单)之间存在生命周期依赖性。当容器停止存在时,其所有实例也将消失。

另一方面,如果我们说客户有一本书。在这种情况下,我们具有“ has-a”聚合关系。因为如果客户不复存在,则该书仍然可用。


8

它表示聚合。从维基百科:

在UML中,它在树的包含类末端用图形表示为空心菱形,并用单线将包含的类与包含的类连接起来。聚合在语义上是扩展的对象,在许多操作中都将其视为一个单元,尽管实际上它是由几个较小的物体组成的。

http://en.wikipedia.org/wiki/Class_diagram

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.