UML 类图教程

警告
本文最后更新于 2021-08-23,文中内容可能已过时。

类图是 UML 中面向对象系统建模中最常用和最重要的图,是定义其它图的基础。类图主要是用来显示系统中的类、接口以及它们之间的静态结构和关系的一种静态模型。

classDiagram
    class Person {
        -name : String
        -age : int
        +getName() String
        +setName(name : String) void
        +getAge() int
        +setAge(age : int) void
        +work() void
    }

一个类的 UML 图表示为一个矩形框,分为三层:

  • 类名
    • 粗体居中
    • 若为抽象类,类名和抽象方法用斜体表示
    • 若为接口,类名上加<<interface>>,一般无属性
  • 属性
    • 可见性 + 属性名 + 类型
  • 方法
    • 可见性 + 方法名 + ( + 参数名 + 参数类型 + ) + 返回类型

可见性:

  • -表示private
  • #表示protected
  • 空表示package/default
  • +表示public
classDiagram
    Person <|-- Student

关系:继承非抽象类

表示:子类指向父类的实线空心三角箭头

classDiagram
    class Vehicle
    <> Vehicle
    Vehicle <|.. Car

关系:继承抽象类

表示:子类指向父类的虚线空心三角箭头

classDiagram
    Car o-- Wheel

关系:成员对象是整体对象的属性,部分可独立存在,且可属于多个整体

表示:部分指向整体的实线空心菱形箭头

classDiagram
    Face *-- Eye

关系:成员对象是整体对象的属性,整体与部分密不可分

表示:部分指向整体的实线实心菱形箭头

classDiagram
    Class <-- Student

关系:成员对象是整体对象的属性,一般表示一种平等关系

表示:部分指向整体的实线箭头

classDiagram
    Car <.. Driver

关系:依赖对象一般作为参数传入另一个对象

表示:对象指向依赖对象的虚线箭头

  1. 看懂UML类图和时序图 — Graphic Design Patterns
  2. 30分钟学会UML类图 - 知乎
  3. Class diagrams - Mermaid