概述
本文主要从概念上介绍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
在合成的一边结束,依赖于该组件是否有许多合成体