MarkDown类图语法(六)

本文详细介绍了Mermaid语法中类图的绘制方法,包括类及其成员的定义、类间关系的表示、类修饰符的使用等内容,并通过多个实例展示了如何应用这些规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 语法详解

类图的核心要素有类和关系。

1.1 类图的「类」

类是类图中的核心组成,类的成员包括属性和方法,以及一些扩展信息。在类图中,一个类实例由三层组成:

  • 类名称,在类图的最顶端;
  • 类属性,在类图的中间层;
  • 类方法,在类图的最下层。

实例 1

​```mermaid
classDiagram
    class 动物
    动物 : String 标签
    动物 : 吃()
​```

代码块

此部分代码将会渲染成如下效果:

2.1.1 类的定义

类的定义有两种方式,第一种是形如 class Animal 这样的直接描述,另一种是通过关系来定义类,如 Vehicle <|-- Car

实例 2

​```mermaid
classDiagram
    class 动物
    交通工具 <|-- 小汽车
​```

代码块

渲染效果如下:

2.1.2 类成员的定义

类成员包含属性、方法;区分属性和方法的语法依赖于是否以「小括号 ()」结尾,没有括号的成员会被解释为属性,有括号的成员会被解释为方法。

类成员有两种定义方法。

实例 3

使用「冒号」声明类成员。

​```mermaid
classDiagram
  class 银行账户
  银行账户 : +String 户主
  银行账户 : +BigDecimal 余额
  银行账户 : +存(数量)
  银行账户 : +取(数量)
​```

代码块

其渲染效果如下:

实例 4

使用 「大括号」确定类对象的成员描述。

​```mermaid
classDiagram
  class 银行账户 {
    +String 户主
    +BigDecimal 余额
    +存(数量) bool
    +取(数量)
  }
​```

代码块

其渲染效果如下:

通过在「小括号」结尾处增加数据类型描述,我们可以给方法成员设置入参及返回值。

实例 5

​```mermaid
classDiagram
  class 银行账户 {
      +String 户主
      +BigDecimal 余额
      +存(数量) bool
      +取(数量) int
  }
​```

代码块

其渲染效果如下:

成员的作用域作为可选项,定义是在成员的开头,有以下四种:

  • + Public
  • - Private
  • # Protected
  • ~ Package/Internal

除此之外,通过在 () 后面增加 「星号 *」和「美元符号 $」,可以用来描述方法成员的抽象或静态属性。

  • 类元素的可见范围

    可见范围表示方法
    private-
    public+
    protected#
    package~
  • 类的修饰

    符号类型
    <<Interface>>接口
    <<abstract>>抽象类
    <<Service>>service类
    <<enumeration>>枚举

2.2 类图中的「关系」

类图中「类」之间的逻辑关系由连接线表示,定义的形式如:[类A][箭头][类B]:标签文字

不同的逻辑关系定义如下:

TypeDescription
<|--继承关系
*--组成关系
o--集合关系
-->关联关系
--实现连接
..>依赖关系
..|>实现关系
..虚线连接

 

实例 6

各种连线类型展示。

​```mermaid
classDiagram
  classA <|-- classB
  classC *-- classD
  classE o-- classF
  classG <-- classH
  classI -- classJ
  classK <.. classL
  classM <|.. classN
  classO .. classP
​```

代码块

渲染结果如下:

还可以为关系加上标签。

实例 7

在类图连接线上增加标签。

​```mermaid
classDiagram
  classA --|> classB : 继承
  classC --* classD : 组成
  classE --o classF : 集合
  classG --> classH : 关联
  classI -- classJ : 实线连接
  classK ..> classL : 依赖
  classM ..|> classN : 实现
  classO .. classP : 虚线连接
​```

代码块渲染效果如下:

实例 8

不同基数关系的定义。

​```mermaid
classDiagram
    顾客 "1" --> "*" 票据
    学生 "1" --> "1..*" 课程
    银河 --> "many" 星星 : 包含
​```

代码块其渲染效果如下:

2.3 类修饰符

我们可以通过标签文本描述类的元数据,例如:抽象类、接口、服务、枚举等。

元数据的通过「双尖括号」定义,有两种写法:

实例 9

在类名称下面另起一行:

​```mermaid
classDiagram
  class 形状
  <<interface>> 形状
​```

代码块其渲染效果如下:

实例 10

在嵌套结构内的首行定义:代码块其渲染效果如下:

3. 使用场景及实例

类图主要用于为系统建模。

实例 11

一个关于动物的类图。

​```mermaid
classDiagram
	鸟 --|> 动物 : 继承
  翅膀 "2" --> "1" 鸟 : 组合
  动物 ..> 氧气 : 依赖
  动物 ..> 水 : 依赖
  
	class 动物 {
    <<interface>>
    +有生命
    +新陈代谢(氧气, 水)
    +繁殖()
	}
	
	class 鸟 {
		+羽毛
		+有角质喙没有牙齿
		+下蛋()
	}
	class 鸟 {
		+羽毛
		+有角质喙没有牙齿
		+下蛋()
	}
​```

代码块其渲染效果如下:

4. 小结

  • Mermaid 方法渲染的类图包含图表类型声明、类、关系;
  • Mermaid 类图支持类名、成员的定义,并可以为成员声明修饰符及类型元数据;
  • Mermaid 支持多种类型的关系,可以为关系增加标签文本,可以增加基数描述。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值