在UML中有几种关系,关联(Association),依赖(Dependency),泛化(Generalization),实现(Realization)。其中关联又可以分为聚合(Aggregation)和组合(Composition)。
这些关系的强弱顺序为:泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖
关联:是一种结构关系,指明一个事物的对象与另一个事物的对象间的联系。
【UML表示法】实线+箭头。
【箭头指向】从关联的对象指向被关联的对象。
聚合:是整体与部分的关系,部分可以离开整体而单独存在。如大雁和雁群,大雁离开雁群,也可以单独存在。
【UML表示法】带空心的菱形的实线。
【箭头指向】空心菱形指向整体。
组合:也是整体与部分的关系,但部分不能离开整体而单独存在。如鸟和翅膀,翅膀不能作为单独的个体存在。
【UML表示法】带实心的菱形的实线。
【箭头指向】实心菱形指向整体。
泛化:是一种特殊/一般关系。可以看做为继承关系。事物之间的关系是什么是什么的关系,如管理者和工程师都是雇员,就可以采用泛化关系。
【UML表示法】实线+空心三角。
【箭头指向】从子元素指向父元素,从特殊元素指向一般元素。
依赖:是两个事物之间的语义关系,其中一个事物(独立事物)发生变化,会影响到另一个事物(依赖事物)的语义。是一种使用using的关系。基本上所有事物之间的关系都可以用依赖表示,而且依赖关系很弱,所以能不用依赖就不用。
【UML表示法】虚线+箭头
【箭头指向】从依赖事物指向独立事物。
实现:是类元之间的语义关系,其中一个类元指定了由另一个类元保证执行的契约。类元是指类,
状态类,类元角色,构件,数据类型,接口,节点,信号,子系统,用例的实例。
【UML表示法】虚线+空心三角
【箭头指向】一般为接口
原则:
能不使用依赖关系就不使用,能使用聚合或组合就不使用关联。