背景
UML中类与类,类与接口,接口与接口的关系有:泛化(generalization),关联(association),依赖(dependency),实现(realization)这几种
文字速记
关联和依赖:一个实线一个虚线
继承和实现:一个实线一个虚线。 这个出现频率最高
组合和聚合:一个实心箭头一个空箭头
图片联系
关系
- 继承关系Inheritance、 子类继承父类 【or 泛化(generalization)】
- 实现关系Implementation、
类实现接口 [类与接口中最常见的关系] - 依赖关系Dependency,依赖关系时是单向的。简单理解就是类A使用到了类B,这种依赖具有偶然性、临时性,是非常弱的关系。但是类B的变化会影响到类A。【在java中,依赖表现为:方法中的参数、局部变量和对静态方法的调用。】
- 关联关系(association)关系表示类与类之间的连接,它使得一个类知道另外一个类的属性和方法。关联关系可以双向的
0…1 表示可以有0个或者1个实例
0…* 表示对实例的数目没有限制
1 表示只能有一个实例
1…* 表示至少有一个实例
-聚合(aggregation)关系是关联关系的特例,是强的关联关系,聚合是整个与个体的关系,即has-a关系,此时整体和部分是可以分离的,他们具有各自的生命周期, 如公司与员工的关系
-组合(compostion)关系也是关联关系的一种特例,体现的是一种contain-a关系,比聚合更强,是一种强聚合关系。此时整体和部分是不可以分离的。如人和脚。
主要说明:
Association 关联关系:类与类之间的连接,它使一个类知道另一个类的属性和方法
Aggregation 聚合关系:弱联系,整体和部分,但可分割 空箭头
Composition 组成(构成、合成)关系:强关联,整体和部分,但不可分割 实心箭头