UML
中的关联
——学习笔记
xmlin
UML
中类与类,
类与接口,
接口与接口这间的关系有:
一般化关系,
关联关系(
关联,
聚合,
合成),
依赖关系.
一般化关系:
表示类与类之间的继承关系,
类与接口之间的实现关系,
接口与接口之间的继承关系.
在java
中表现为extends
或implements
关联关系:
表示类与类之间的联接,
它使一个类知道另一个类的属性和方法.
在java
语言中关联关系是使用实例变量实现的.
关联可以使用单箭头表示单向关联,
使用双箭头或不使用箭头表示双向关联,
不建议使用双向关联.
关联有两个端点,
在每个端点可以有一个基数,
表示这个关联的类可以有几个实例.
常见的基数及含义:
0..1:0
或1
个实例.
0..*:
对实例的数目没有限制.
1:
只能有一个实例.
1..*:
至少有一个实例.
聚合关系(aggregation):
关联关系中的一种,
是强的关联关系.
聚合是整体和个体之间的关系.
如汽车类与引擎类,
轮胎类.
聚合关系也是使用实例变量实现的.
从java
语法上是分不出关联和聚合的.
关联关系中两个类是处于相同的层次,
而聚合关系中两不类是处于不平等的层次,
一个表示整体,
一个表示部分.
合成关系(composition):
也是关联关系中的一种,
比聚合更强的的关联关系.
它要求代表整体的对象要负责代表部分的对象的生命周期.
即代表整体的对象要负责代表部分的对象的存活.
合成关系不能共享.
如人对象和四肢对象就是合成关系.
依赖关系:
也是类与类之间的连接.
表示一个类依赖于另一个类的定义.
依赖关系总是单向的.
在java
中.
依赖关系体现为:
局部变量,
方法中的参数,
和对静态方法的调用.