UML(3)——聚合与组合

组合中部分和全体唇亡齿寒的关系,有部分的存在,全体才称之为全体,每个实例都是其固有特性;
聚合中部分的每个实例都不是全体的固有特性,可以有千千万万个部分实例,只要有一个部分的实例存在,聚合关系形成的全体仍然是其本身。
聚本身就暗示了相似的、一样的,很多相似的东西合在一起,谓之聚。
组合并不强调相似的东西合而为一,暗示了丰富性,多个不同类型的部分组成了一个独一无二的全体。

聚合关系(aggregation)

聚合关系用一条带空心菱形箭头的直线表示,如下图表示A聚合到B上,或者说B由A组成;

_images/uml_aggregation.jpg
聚合关系用于表示实体对象之间的关系,表示整体由部分构成的语义;例如一个部门由多个员工组成;

与组合关系不同的是,整体和部分不是强依赖的,即使整体不存在了,部分仍然存在;例如, 部门撤销了,人员不会消失,他们依然存在;

组合关系(composition)

组合关系用一条带实心菱形箭头直线表示,如下图表示A组成B,或者B由A组成;

_images/uml_composition.jpg
与聚合关系一样,组合关系同样表示整体由部分构成的语义;比如公司由多个部门组成;

但组合关系是一种强依赖的特殊聚合关系,如果整体不存在了,则部分也不存在了;例如, 公司不存在了,部门也将不存在了;

菱形

首先, 菱形代表的意思就是全体 - 部分的关系。也就是说不管实心还是空心,都代表全体 - 部分 / part - of 的含义。

  • 空心,全体和部分的连接可以是宽松的,全体和部分可以相互脱离独立存在。
  • 实心,全体和部分的连接是强关联

空心菱形(聚合关系)的准确含义

在UML1.3时代,空心菱形被称为共有聚合。即 多个全体的实例,可以共同拥有1个部分的实例 的意思。 全体和部分的连接可以是宽松的,全体和部分可以相互脱离独立存在。 UML2起叫虽然称之为聚合,但本身的含义并未改变。
在这里插入图片描述
例如: 图形拥有样式,可以把这个认为是全体 - 部分的关系
1个样式实例,可以被多个图形实例所拥有, 图形实例也可以不拥有样式
样式实例也可以脱离图形

实心菱形(组合关系)的准确含义

实心菱形里的部分不能被其他全体实例的对象所所拥有。
即 1个部分实例只能被唯一1个全体实例所持有 。
且可以认为部分和全体拥有一个共同的生存周期,当全体被删除,部分也被连带删除。 但在全体删除前移除部分,是可以免去连带删除全体。在这里插入图片描述
例如: 车和轮胎,也可以认为是全体 - 部分的关系;
1个轮胎实例,只能被1个车实例拥有 ;
车报废时,轮胎也跟着报废 ;
在车报废前,可以将轮胎拆除,转移到别的车下 。

  • 39
    点赞
  • 76
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值