Gee*_*eek 60 uml design-patterns class-diagram
请考虑以下两个图表.顶部箭头在右端包含一个普通箭头,底部包含一个箭头,左端有一个菱形,右端有一个普通箭头.本伟大的书GoF的同时具有这两种图表的用法.
我想了解什么是钻石在第二种情况下表示,这两个中的哪一个给人之间的关联性更强Customer和Order.
在两种情况中Customer,Order该类是否负责类的生命周期?

C.C*_*gne 92
如果没有钻石,那么我们就会有一个简单的关联.
如果钻石留空,则表示它是聚合.这种关系比简单的关联更强大.在这种情况下,客户汇总订单.
如果钻石是黑色的,这意味着它是一种合成,甚至比聚合更强,因为聚合的类不能被其他类聚合.它的"生命"取决于容器.
我认为它的解释更清楚一点,在:
小智 17
客户和订单是"有一个"的组合关系,因为如果客户不再存在,那么他/她的订单也是如此.因此,容器(客户)与该容器(订单)中的实例之间存在生命周期依赖关系.当容器不再存在时,所有实例也都存在.
另一方面,如果我们说客户有一本书.在这种情况下,我们有一个"has-a"聚合关系.因为如果客户不再存在,那么这本书仍然可用.
小智 8
它表示聚合.来自维基百科:
在UML中,它以图形方式表示为树的包含类末端上的空心菱形,其中一行将包含的类连接到包含的类.聚合在语义上是一个扩展对象,在许多操作中被视为一个单元虽然物理上它是由几个较小的物体组成的.
http://en.wikipedia.org/wiki/Class_diagram