跳到正文
Mernyx
打开菜单

Mermaid 类图速查表

类型、它们的成员,以及它们之间的关系。

这个页面上的每一张图都由Mernyx——macOS 上的原生 Mermaid 编辑器绘制。不是浏览器里跑的 Mermaid.js,而是 App 画布用的同一个渲染器。

定义一个类

成员前面加可见性标记:+ 公有,- 私有。

classDiagram
  class Animal {
    +String name
    +int age
    +isMammal() bool
  }
一个叫 Animal 的类框,列着三个成员:name、age 和一个 isMammal 方法。放大图表

关系类型

六种关系,各有自己的箭头。左边两个是 UML 里的经典款。

classDiagram
  Animal <|-- Duck
  Car *-- Wheel
  Team o-- Member
  User --> Order
  Order ..> Invoice
五个类框用不同的箭头相连:空心三角表示继承,实心菱形表示组合,空心菱形表示聚合,另外还有普通箭头和虚线箭头。放大图表

给关系加标签

关系后面的冒号后面就是两个类型之间的动词。

classDiagram
  Keeper "1" --> "*" Animal : feeds
  Animal "1" --> "0..*" Leg : has
两个类框由一根标着 feeds 的箭头相连,第一个框旁标着「一」,第二个框旁标着「多」。放大图表

基数

每端引号里的数字说明涉及多少个该类型的实例。

classDiagram
  Customer "1" --> "*" Order : places
  Order "1" *-- "1..*" LineItem : contains
三个类框:Customer 到 Order 是一对多,Order 到 LineItem 是一对一对多。放大图表

注解

类体里的尖括号标出它的种类。

classDiagram
  class Shape {
    <<interface>>
    +draw() void
  }
  Circle ..|> Shape
一个叫 Shape 的类框,标注为接口并带一个 draw 方法,用虚线三角连到另一个类框。放大图表

方向

和流程图同一个关键字。默认自上而下。

classDiagram
  direction LR
  Animal <|-- Duck
  Animal <|-- Fish
并排的两个类框,都用空心三角连到它们上方的第三个类框。放大图表

在 Mernyx 里画出来

打开一个 .mmd 文件,在画布上挪一个节点,源码跟着走。macOS 原生,不经过浏览器。

图表预览