Better

Ethan的博客,欢迎访问交流

UML 图形表示

熟悉 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) {}
}

示例

UML Template.png

工具

  • drawio 这个工具真是太香啦,只是有些设置和配置是存在浏览器的 localStorage 和 indexDB 中,谨慎删除!


留言