熟悉 UML 中图形表示和关系表示
图形表示
图形表示
- 普通类
- 使用三层矩形表示,第一层表示类名,如果是抽象类,使用斜体表示。第二层是属性,第三层是方法
- 前面的符号 + 表示 public,- 表示 private,# 表示 protected
- 接口:使用两层矩形表示,第一层表示接口名称。第二行是接口方法
- 继承类
- 图形表示和普通类一样
- 需要表示出继承关系:使用空心三角形+实线表示
- 实现接口
- 图形表示和普通接口一样
- 需要表示出实现关系:使用空心三角形+虚线表示
关系表示
类之间关系表示
- 泛化:继承关系
- 空心三角形+实线
- 实现:接口与实现类
- 空心三角形+虚线
- 聚合:A 包含 B,但 B 类对象的生命周期不依赖 A 类对象的生命周期(B 在外部创建,通过函数传递的方式,A 持有 B 的引用)
- 空心菱形+箭头表示
- 组合:A 包含 B,B 类对象的生命周期依赖 A 类对象的生命周期(B 在 A 中创建,A 持有 B 的引用)
- 实心菱形+箭头表示
- 关联:一种非常弱的关系,包含聚合和组合
- 实线箭头表示
- 依赖:比关联更加弱的关系,包含关联关系,不管 B 是 A 的成员变量,还是 A 类方法使用 B 作为参数或返回值、局部变量
- 虚线箭头表示
后面四个可能有点难以理解,下面的简单的示例代码
// 聚合
public class A {
private B b;
public A(B b) {
this.b = b
}
}
// 组合
public class A {
private B b;
public A() {
this.b = new B()
}
}
// 依赖包含上述,还包括如下
public class A {
public void func(B b) {}
}
示例
工具
- drawio 这个工具真是太香啦,只是有些设置和配置是存在浏览器的 localStorage 和 indexDB 中,谨慎删除!