面向对象设计与分析40讲(14)markdown语法在线绘制时序图--plantuml

本文详细介绍了如何使用PlantUML语法创建时序图,包括参与者声明、颜色设置、顺序调整、消息传递样式修改、标题页眉页脚定制、注释框外观改变、延迟与空间管理、生命线激活与撤销等关键步骤,帮助开发者更好地绘制时序图。

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

网址

时序图语法:
https://plantuml.com/zh/sequence-diagram

在线编辑:
http://www.plantuml.com/plantuml

-> --> 信息传递

小明与小红对话:

这里的 小明小红 都是参与者,关于参与者看下一节;
在这里插入图片描述

声明参与者的几个关键字

  1. actor
  2. boundary
  3. control
  4. entity
  5. database
  6. collections
  7. participant

它们都是参与者,只是声明出来的 图标 不一样,根据单词意思也可以看出,在合适的地方选择合适的参与者;:
在这里插入图片描述

as 重命名参与者

在声明参与者的时候,可以取别名 ,然后再以后使用,可以直接使用别名,但是原名字不能再被使用;

声明参与者的时候,参与者的名字是可以使用双引号括起来的,比如你的名字很长,中间有空格就需要双引号括起来;但是别名是不允许有双引号的;

在这里插入片描述

# 添加颜色

# 为参与者赋予颜色,后面可以是 RGB 颜色,也可以是颜色的单词:

在这里插入图片描述

order 定义参与者顺序

默认参与者安装声明的先后进行排序,可以自定义顺序,使用 order 关键字排序;先后顺序,安装 order 后面的数字来决定,数值越小,越靠前,数值一样大,按照声明顺序;

在这里插入图片描述

“” 参与者名字

参与者起名字的时候,一般只能是字母、数字,如果想使用其他字符,则可以使用 “” 括起来:

在这里插入图片描述

给自己发信息

消息太长,可以使用 \n 进行换行;
在这里插入图片描述

修改传达信息的箭头样式

我们可以通过,修改箭头样式,来表达不一样的意思:

  1. 表示一条丢失的消息:末尾加 x
  2. 让箭头只有上半部分或者下半部分:将<和>替换成\或者 /
  3. 细箭头:将箭头标记写两次 (如 >> 或 //)
  4. 虚线箭头:用 – 替代 -
  5. 箭头末尾加圈:->o
  6. 双向箭头:<->

在这里插入图片描述

修改箭头颜色

在写箭头的时候,在中间插入 [#xxx] 变为 -[#xxx]>
在这里插入图片描述

设置标题、页眉、页脚

  1. title,设置标题
  2. herder,设置页眉
  3. footer,设置页脚,如果想用页码,则加上 %page% of %lastpage%

在这里插入图片描述

改变注释框的外观

使用 hnote 和 rnote 取代之前的 noteh 是六边形,r 是长方形:

在这里插入图片描述

分割符

== xxx == 分割流程:
在这里插入图片描述

延迟

... 代表延迟:
在这里插入图片描述

空间

有时候我们感觉,上下文信息太过密集,可以使用 ||| 来增加空间,或者 ||size|| 指定空间大小:

在这里插入图片描述

生命线激活、撤销

activate和deactivate用来表示参与者的生命活动激活、撤销,而 destroy 则代表生命线的摧毁:

生命线被撤销、摧毁以后,还是可以再次激活的,但是不能在同一个点,撤销、摧毁以后,立马激活,在图中表现为,线必须要有断点:

在这里插入图片描述

在生命线激活期间,可以再次激活, 也可给生命线上颜色,激活以后 #xxxx

在这里插入图片描述

Return

可以根据上下文信息智能的判断,返回到哪一个点,还可以传递信息过去;

比如,上文 A->B ,则 return 就是B->A

在这里插入图片描述

创建参与者

在对话期间,创建参与者,而不是一开始参与者就存在,然后两人对话:

在发送信息之前,使用 create actor xxx 创建对象,然后再和 xxx 发信息
在这里插入图片描述

进入和发出消息

[ ,] 分别代表左右两侧,写的时候,一般我是先写 xx,代表参与者,然后箭头,最后写 [,] ,这里的箭头可以是之前学的各种样式:

箭头样式的时候,需要注意下,

当然,写法不止这一种,自己也可以挑选好记的:
在这里插入图片描述

包裹参与者

可以使用box和end box画一个盒子将参与者包裹起来。

还可以在box关键字之后添加标题或者背景颜色。

在这里插入图片描述

移除脚注

使用hide footbox关键字移除脚注,这样就没有

在这里插入图片描述

skinparam 外观参数

使用 skinparam handwritten true 开启手写风格

使用 skinparam backgroundColor #颜色RGB 指定背景填充颜色
在这里插入图片描述

  • skinparam ParticipantPadding 数值 指定参与者的外边距
  • skinparam BoxPadding 数值 指定 box 的外边距
### 绘制 Markdown 时序图语法使用教程 Markdown 的原生语法并不支持直接绘制图形,但借助扩展模块(如 Mermaid 或 PlantUML),可以通过特定的标记语言实现时序图的创建[^1]。 #### 基本概念时序图的作用 时序图是一种用于展示对象间时间顺序关系的工具,能够清晰地表达交互过程中的 “从哪到哪”。它适用于描述系统的动态行为以及对象之间的通信方式[^2]。 #### 时序图的基本语法结构 以下是构建时序图的核心语法规则: - **实线 `-`**:表示主动发送的消息,通常用于发起请求的操作。例如 `A -> B: request` 表示 A 发送了一个名为 `request` 的消息给 B[^3]。 - **虚线 `--`**:表示返回消息,通常是响应操作的结果。例如 `B -->> A: response` 表示 B 返回了一个名为 `response` 的消息给 A[^4]。 - **同步箭头 `>` 和异步箭头 `>>`**: - 同步消息使用单向箭头 `->>` 来表示,意味着调用方会等待被调用方完成处理后再继续执行其他逻辑。 - 异步消息使用开放箭头 `-x` 来表示,表明调用不会阻塞当前进程。 #### 示例代码 以下是一个简单的时序图实例,展示了如何定义参者及其交互过程: ```mermaid sequenceDiagram participant User as 用户 participant Server as 服务器 Note over User,Server: 登录流程开始 User ->> Server: POST /login {username="admin", password="password"} activate Server Server -->> User: {"status": "success", "token": "abc123"} deactivate Server ``` 上述代码片段解释如下: - 定义两个参者:`User` 和 `Server`。 - 描述了用户向服务器发送登录请求的过程,并接收来自服务器的成功响应。 - 使用 `activate` 和 `deactivate` 关键字来标注某个阶段内的活动状态变化。 #### 扩展功能 除了基本的消息传递外,还可以利用注释 (`Note`) 对某些复杂场景加以说明;或者引入循环、条件分支等功能进一步增强图表的表现力。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值