定义:

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

总览:

UML 依赖关系 java_泛化

强弱关系:

(通过线就可以看出来,实线比虚线强,三角形最稳定):泛化>实现>组合>聚合>关联>依赖

(1)Generalization(泛化/继承):(类和类)

定义:

是一种特殊/一般关系,特殊元素(子元素)的对象可替代一般元素(父元素)的对象。用这种方法,子元素继承了父元素的结构和行为,并可以增加它自己的新功能。

泛化关系用来描述类的一般和具体之间的关系。是类与类或者接口与接口最常见的关系。

UML 依赖关系 java_ci_02

表达方式:

箭头指向父元素。

UML 依赖关系 java_依赖关系_03

举例:

Employee是父元素,给Employee赋予一个属性,下面的Engineer和Manager都会拥有这个属性,增加了软件的复用性,减少维护代价。

UML 依赖关系 java_UML 依赖关系 java_04

例2:

鸟继承动物的特性:

UML 依赖关系 java_UML 依赖关系 java_05

(2)Realization(实现):(类和接口)

定义:

是指一个class实现一个或多个接口,表示类具备了某种能力,实现是类与接口中最常见的关系。

表示方式:

箭头指向接口。

UML 依赖关系 java_依赖关系_06

举例:

类实现了一个接口:大雁实现了飞翔接口

UML 依赖关系 java_依赖关系_07

 

(3)组合:(类和类)

定义:

“部分”不能脱离“整体”单独存在,其生命周期应该是一致的。比如你和你的大脑,是整体和部分的关系。

表达方式::

UML 依赖关系 java_泛化_08

举例:

翅膀以及其他器官组成鸟。

UML 依赖关系 java_UML 依赖关系 java_09

 例2:

狗头和爪子组合成狗:

UML 依赖关系 java_UML 依赖关系 java_10

(4)聚合:(类和类)

定义:

可以相互独立存在的叫聚合.

表达方式:

UML 依赖关系 java_泛化_11

举例:

书架和书。

UML 依赖关系 java_泛化_12

例2:

大雁和雁群:

UML 依赖关系 java_ci_13

(5)Association(关联):类和类

定义:

描述了两个或多个类之间或者类与接口之间的强依赖关系。比依赖强烈,是一种长期性的关系,指出了一个事物的对象与另一个事物的对象之间的语义上的连接。关联是最常见的关系。

表达方式:

使用单箭头表示单向关联,使用双箭头或直线表示双向关联。

UML 依赖关系 java_ci_14

数字的含义:

关联有两个基数,一个端点一个。常见的基数及其含义:

0...1:0或1个实例。

0...*:0到无限

1:只有一个实例

1...*:至少有一个实例。

举例:(类与类)

UML 依赖关系 java_ci_15

(6)Dependency(依赖):类和类

定义:

表示类与类之间的连接。就是单向使用。凡是人类都使用空气,这种必须的需求,我们称之为依赖关系。这种依赖具有偶然性,临时性,非常弱的关系。

表达方式:

用带箭头的虚线表示,指向依赖物。

UML 依赖关系 java_ci_16

举例:

动物依赖(需要)氧气和水:

UML 依赖关系 java_UML 依赖关系 java_17

例2:

一个类的方法,getcontactinformation()用到了contctinformation类。getpersonalrecords()用到了personnelrecord类。所以是依赖关系。如图:

UML 依赖关系 java_UML 依赖关系 java_18