在软件系统中,类并不是孤立存在的,类与类之间存在各种关系,对于不同类型的关系,UML提供不同的表示方式。
1 关联关系
关联关系是类与类之间最常用的一种关系,它是一种结构化关系,用于表示一类对象与另一类对象之间有联系,如汽车和轮胎、师傅和土地、班级和学生等。
在UML类图中,用实线连接有关联关系的对象所对应的类,
在使用Java、C#和C++等编程语言实现关联关系时,通常将一个类的对象作为另一个类的成员变量。
在UML中,关联关系通常又包含如下几种形式
默认情况下,关联是双向的。
a双向关联
例如,顾客(Customer)购买商品(Product)并拥有商品,反之,卖出的商品总有某个顾客与之相关联。
因此,Customer类和Product类之间具有双向关联关系
b单向关联
类的关联关系也可以是单向的,在UML中单向关联用带箭头的实线表示。
例如,顾客(Customer)拥有地址(Address),则Customer类与Address类具有单向关联关系。
c自关联
在系统中可能会存在一些类的属性对象类型为该类本身,这种特殊的关联关系称为自关联。
例如,一个节点类(Node)的成员又是节点 Node 类型的对象
在使用类图表示关联关系时可以在关联线上标注,表示两者之间关系的动词。