UML类图
1 引言
UML类图是软件方案设计中常用的一种方式,之前一直对于类之间的关系认识存在模糊,借着整理项目架构之便将该知识点规整之下。
UML类图建模中类于类之间的关系有6种,按照关系从弱到强依次是依赖(Dependency),关联(Association),聚合(Aggregation),组合(Composition),实现(Realization)和泛化(Generlization)。
2 关系概述
| 关系名称 | 解释 | 代码表现 | 图形形状 |
|---|---|---|---|
| 依赖 | 最弱的关系,一种使用的关系,即A类实现需要B类的协助 | 局部变量,方法的参数或者对静态方法的调用 | 带箭头的虚线,指向被使用者,即A使用B,箭头指向B |
| 关联 | 一种拥有的关系, 如老师和学生,丈夫和妻子,拥有关系可以是单向的,也可以是双向的 | 成员变量 | 带箭头的实心线(双向关联可以双箭头或者没有箭头),指向被拥有者,即A拥有B,箭头指向B |
| 聚合 | 整体和部分的关系,部分可以脱离整体单独存在,如车和轮胎 | 成员变量 | 带空心菱形的实心线,菱形指向整体,即A是整体,B是部分,菱形指向A, 箭头指向B |
| 组合 | 整体和部分的关系,部分不可以脱离整体单独存在,关系比聚合强一点,如公司和部门 | 成员变量 | 带实心菱形的实心线,菱形指向整体,即A拥有B,菱形指向A,箭头指向B |
| 实现 | 实现类和接口的关系 | 类与接口 | 带三角箭头的虚线,箭头指向接口,即A是实现类,B是接口, 箭头指向B |
| 泛化 | 继承,最强关系 | 继承 | 带三角箭头的实线,箭头指向父类,即A是父类,B是子类,箭头指向A |
备注 : 箭头指向被继承(实现/拥有/使用)或部分的那个类