钻石标志在UML类图中表示什么?
考虑下面的两个图。 顶部在右端包含一个纯箭头,底部包含一个箭头,左端是菱形,右端是纯箭头。 伟大的书GoF有这两种图的用法。
我想了解钻石在第二种情况下表示的是什么,以及这两者中的哪一种给予Customer
和Order
之间更强的关联。
在这两种情况下, Customer
类是否负责Order
类的生命周期?
如果没有钻石,那么我们有一个简单的关联。
如果钻石留空,则表示这是一个聚合。 这种关系比一个简单的关联要强大。 在这种情况下,客户汇总订单。
如果钻石是黑色的,这意味着它是一个构图,比聚合更强,因为聚合的类别不能被其他类别聚合。 它的“生命”取决于容器。
我认为这是更清楚地解释一下,在:
- Ezra,Aviad(2009年5月28日)“ UML类图:关联,聚合和组合 ”
客户和订单是一个“有一个”的组成关系,因为如果客户不存在他/她的订单。 因此,容器(客户)和该容器内的实例(订单)之间存在生命周期依赖关系。 当容器不再存在时,所有的情况都是如此。
另一方面,如果我们说客户有一本书。 在这种情况下,我们有一个“有一个”的聚合关系。 因为如果客户不存在,这本书仍然可用。
它表示聚合。 从维基百科:
在UML中,它被graphics化地表示为一个空心菱形,在树的包含类的末端,用一条单独的线将包含的类连接到包含类。聚合语义上是一个扩展对象,在许多操作中被视为一个单元尽pipe在物理上它是由几个较小的物体组成的。