1 画图工具
Visio或者processon在线作图
2 基本元素
类图中一共包含了以下几种模型元素,分别是:类(Class)、接口(Interface)以及类之间的关系
3 类(Class)
4 接口(Interface)
接口使用一个带有名称的小圆圈来进行表示。
5 类图中关系(relation)
5.1 泛化关系(Generalization)
是一种继承关系
【箭头指向】:带三角箭头的实线,箭头指向父类
5.2 实现(Realization)
是一种类与接口的关系
【箭头指向】:带三角箭头的虚线,箭头指向接口
5.3 关联(Association)
是一种拥有的关系
【箭头及指向】:带普通箭头的实心线,指向被拥有者
上图中,老师与学生是双向关联,老师有多名学生,学生也可能有多名老师。 但学生与某课程间的关系为单向关联,一名学生可能要上多门课程,课程是个抽象的东西他不拥有学生。 下图为自身关联:
5.4 聚合(Aggregation)
是整体与部分的关系,且部分可以离开整体而单独存在
聚合关系是关联关系的一种,是强的关联关系;
【箭头及指向】:带空心菱形的实心线,菱形指向整体
5.5 组合(Composition)
【组合关系】:是整体与部分的关系,但部分不能离开整体而单独存在。
注意区别与聚合关系,是比聚合关系还要强的关系。它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。
【箭头及指向】:带实心菱形的实线,菱形指向整体
复制代码
5.6 依赖(Dependency)
【依赖关系】:是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖。
【代码表现】:局部变量、方法的参数或者对静态方法的调用
【箭头及指向】:带箭头的虚线,指向被使用者
5.7 关系总结
各种关系的强弱顺序: 泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖 下面这张UML图,比较形象地展示了各种类图关系:
参考:https://juejin.cn/post/6844903550460362760