在UML中,事物之间相互联系的方式(无论是逻辑上的还是物理上的)都被建模为关系。在面向对象的建模中,有3种最重要的关系:依赖、关联和泛化。
(1)依赖(dependency)是使用关系。例如,水管依赖热水器,对它们所运送的水进行加热。
(2)关联(association)是实例之间的结构关系。分包含(has a)、使用(use a)和创建三种,其中包含分两种:被包含着是包含着的一部分,称为组合(composition);包含着是个集合,被包含着是集合中的一项,称为聚合(aggregation)。
(3)泛化(generalization)把一般类连接到较为特殊的类,也称为超类/子类关系或父/子关系。例如,观景窗是一种带有固定的大窗格的窗户,庭院窗是一种带有向两边开的窗格的窗户。
主要讲一下关联。关联(association)是一种结构关系,它指明一个事物的对象与另一个事物的对象间的联系。给定一个连接两个类的关联,可以从一个类的对象联系到另一个类的对象。关联的两端都连到同一个类是完全合法的。这意味着,从类的给定对象能连接到该类的其他对象。恰好连接两个类的关联叫作二元关联。尽管不太常见,但可以有连接多于两个类的关联,这种关联叫作n元关联。在图形上,把关联画成一条连接相同类或不同类的实线。当要表示结构关系时,就使用关联。
除了这种基本形式外,还有4种应用于关联的修饰。
1. 名称:
2.角色
3.多重性
4.聚合
例子
其中学校与部门是组合关系(类似于汽车与轮胎),学校与学生是聚合关系(类似于机场上的飞机)