定义:
UML中有类与类,类与接口,接口与接口的关系,常见有泛化(generalization),关联(association),依赖(dependency),实现(realization)。
总览:

强弱关系:
(通过线就可以看出来,实线比虚线强,三角形最稳定):泛化>实现>组合>聚合>关联>依赖
(1)Generalization(泛化/继承):(类和类)
定义:
是一种特殊/一般关系,特殊元素(子元素)的对象可替代一般元素(父元素)的对象。用这种方法,子元素继承了父元素的结构和行为,并可以增加它自己的新功能。
泛化关系用来描述类的一般和具体之间的关系。是类与类或者接口与接口最常见的关系。
表达方式:
箭头指向父元素。
举例:
Employee是父元素,给Employee赋予一个属性,下面的Engineer和Manager都会拥有这个属性,增加了软件的复用性,减少维护代价。
例2:
鸟继承动物的特性:
(2)Realization(实现):(类和接口)
定义:
是指一个class实现一个或多个接口,表示类具备了某种能力,实现是类与接口中最常见的关系。
表示方式:
箭头指向接口。
举例:
类实现了一个接口:大雁实现了飞翔接口
(3)组合:(类和类)
定义:
“部分”不能脱离“整体”单独存在,其生命周期应该是一致的。比如你和你的大脑,是整体和部分的关系。
表达方式::
举例:
翅膀以及其他器官组成鸟。
例2:
狗头和爪子组合成狗:
(4)聚合:(类和类)
定义:
可以相互独立存在的叫聚合.
表达方式:
举例:
书架和书。
例2:
大雁和雁群:
(5)Association(关联):类和类
定义:
描述了两个或多个类之间或者类与接口之间的强依赖关系。比依赖强烈,是一种长期性的关系,指出了一个事物的对象与另一个事物的对象之间的语义上的连接。关联是最常见的关系。
表达方式:
使用单箭头表示单向关联,使用双箭头或直线表示双向关联。
数字的含义:
关联有两个基数,一个端点一个。常见的基数及其含义:
0...1:0或1个实例。
0...*:0到无限
1:只有一个实例
1...*:至少有一个实例。
举例:(类与类)
(6)Dependency(依赖):类和类
定义:
表示类与类之间的连接。就是单向使用。凡是人类都使用空气,这种必须的需求,我们称之为依赖关系。这种依赖具有偶然性,临时性,非常弱的关系。
表达方式:
用带箭头的虚线表示,指向依赖物。
举例:
动物依赖(需要)氧气和水:
例2:
一个类的方法,getcontactinformation()用到了contctinformation类。getpersonalrecords()用到了personnelrecord类。所以是依赖关系。如图: