概述
本文主要从概念上介绍Association、Aggregation和Composition
背景
UML中aggregation和composition均被定义为association的特殊形式,更准确地说是部分-整体关联(part-whole-associaiton)的特殊形式
Association
定义
- 当一个对象使用另一个对象时,Association关系出现在对象之间,技术上来说可以认为是基于两个类之间关系的引用,即一个类拥有另一个类的类级别的引用
- Association没有部分-整体的关系
- 单向功能(
uni-directional functional)的Association对应于面向对象(OO)编程语言里一个类的引用属性(reference property),SQL中一个表的外键 - 两个对象类型之间的Association被称作双向的(
binary)
Aggregation
定义
- 当一个对象使用另一个对象时出现Aggregation关系,对象之间处于部分-整体的关系,并且部分的生命期并不依赖于整体的生命期
- Aggregation是部分-整体关联的一种特殊形式,即整体的部分可以被其它的整体共享
- Aggregation的多重性可以使用
*在任何一边结束,因为这里的部分可能属于或被其它的整体分享
Composition
定义
- Composition关系中一个对象使用另一个对象,并且对象之间存在部分-整体的关系,但是部分的生命期依赖于整体的生命期
- 如果一个Composition对象被删除了,所有其它的实例都会被删除
- Composition的多重性使用
1或0..1在合成的一边结束,依赖于该组件是否有许多合成体