admin管理员组文章数量:1566354
UML图是一种交互图,它显示了进程如何相互操作以及以什么顺序运行,更多详情
UML示例
消息类型
消息可以是两个实线或虚线显示。
格式:[参与者][消息类型][参与则]:Message text
目前支持六种类型的箭头:
类型 | 描述 |
---|---|
-> | 不带箭头的实线 |
–> | 不带箭头的虚线 |
->> | 带箭头的实线 |
–>> | 带箭头的虚线 |
-x | 末端带有十字的实线 |
–x | 末端带有十字的虚线 |
-) | 末端带有开放箭头的实线(异步) |
–) | 末端带有开放箭头的虚线(异步) |
代码
sequenceDiagram
participant A
participant B
actor C
actor D
participant F
A->B:不带箭头的实线
B-->A:不带箭头的虚线
A->>C:带箭头的实线
C-->>A:带箭头的虚线
A-xD:末端带有十字的实线
D--xA:末端带有十字的虚线
A-)F:末端带有开放箭头的实线
F--)A:末端带有开放箭头的虚线
示例
语法
关键字 | 描述 |
---|---|
sequenceDiagram | 用于声明生成序列图 |
%% | 用于注解代码片段 |
participant | 用于定义参与者(长方形) |
actor | 用于定义参与者(人物模型) |
as | 用于起别名 |
activate | 用于激活片段 |
Note | 用于注释事件 |
loop | 声明循环片段 |
alt | 声明事件的代替方案 |
par | 声明事件为并发事件 |
critical | 声明为重要事件 |
break | 声明跳出事件 |
rect | 声明区域颜色,进行高亮 |
link | 为参与者添加超级链接 |
sequenceDiagram
sequenceDiagram
关键字用于声明当前生成图表类型为UML图
%%
使用%%
来在代码片段是写注解
代码
sequenceDiagram
participant 客户端
participant 服务端
%% 这是一个注解
服务端->>客户端: 听到请回复
客户端->>服务端: 收到!
示例
participant
participant
关键字用来定义参与者,如果在不使用participant
关键字来声明参与者,参与者将会以代码中逻辑顺序呈现,如果使用participant
关键字来声明参与者,会按照participant
声明的顺序来声明。
代码
sequenceDiagram
participant 客户端
participant 服务端
服务端->>客户端: 听到请回复
客户端->>服务端: 收到!
示例
actor
如果想用人形状而不是使用长方形形状来显示参与者,使用Actors
关键字来声明参与者
代码
sequenceDiagram
actor 客户端
actor 服务端
服务端->>客户端: 听到请回复
客户端->>服务端: 收到!
示例
as
使用as
关键字可以对参与者取一个方便使用的标识符(别名)
代码
sequenceDiagram
participant a as 客户端
participant b as 服务端
a->>b: 听到请回复
b->>a: 收到!
示例
activate
可使用activate
激活和使用deactivate
停用参与者。
代码
sequenceDiagram
Alice->>John: Hello John, how are you?
activate John
John-->>Alice: Great!
Alice-->>John: Fine!
deactivate John
Alice->>John:bye!
示例
于此同时,也可以通过使用在消息箭头后附加后缀+
表示activate
,使用-
表示deactivate
代码
sequenceDiagram
Alice->>+John: Hello John, how are you?
Alice->>+John: John, can you hear me?
John-->>-Alice: Hi Alice, I can hear you!
John-->>-Alice: I feel great!
示例
Note
可以在序列图中使用Note
关键字添加注释。
注释格式为`Note [ right of | left of | over ] [参与者]:Text in note content
代码
sequenceDiagram
participant a as note
Note left of a:注解1
Note right of a:注解2
Note over a:注解3
客户端->服务端:收到请回复
Note over 客户端,服务端:这是一个交互式注解
示例
loop
在UML中可以使用loop
关键字来表示循环
循环的格式为:
loop [循环内容]
...消息...
end
代码
sequenceDiagram
客户端->服务端:收到请回复!
loop 每分钟任务
服务端-->客户端:检查是否连接成功!
end
示例
alt
在序列图中可以使用alt
声明代替项,代替项用来表示多种情况
代码
sequenceDiagram
participant client as 客户端
participant server as 服务端
client->>server :尝试连接
alt 连接成功
server ->>client:建立连接
else 连接失败
server -->>client:连接失败
end
opt 拨号连接
server ->>client:每分钟重连一次
end
示例
par
使用par
关键字来表示这是一个并发事件
par
的格式为:
par [并行消息注解1]
---消息内容---
and [并行消息注解2]
---消息内容---
end
代码
sequenceDiagram
actor user as 用户
participant client as 客户端
participant sever as 服务端
par 用户到客户端
user ->>client :帮我呼叫服务端
and 用户到客户端
user ->>sever :是否收到客户端呼叫
end
sever -->>user:收到客户端消息
示例
critical
使用critical
关键字声明此区域为重要区域,部分引擎可能不支持使用此关键字。
格式:
critical [Action that must be performed]
... statements ...
option [Circumstance A]
... statements ...
option [Circumstance B]
... statements ...
end
代码
sequenceDiagram
critical 建立于数据库的连接
server->>DB:连接
option 连接超时
server-->>server:超时异常
option 连接被拒绝
server-->>server:权限异常
end
示例
sequenceDiagram
critical 建立于数据库的连接
server->>DB:连接
option 连接超时
server-->>server:超时异常
option 连接被拒绝
server-->>server:权限异常
end
break
在序列图中表示条件终止(通常用于模块异常中),部分引擎中无法使用此关键字。
格式:
break [something happened]
... statements ...
end
代码
sequenceDiagram
participant Consumer as 消费者
participant API as 程序接口
participant BookingService as 订购服务
participant BillingService as 计费服务
Consumer-->>API: 预订一些东西
API-->>BookingService: 开始预订流程
break 预订进程失败
API-->>Consumer: 显示失败
end
API-->>BillingService: S开始计费流程
示例
sequenceDiagram
participant Consumer as 消费者
participant API as 程序接口
participant BookingService as 订购服务
participant BillingService as 计费服务
Consumer-->>API: 预订一些东西
API-->>BookingService: 开始预订流程
break 预订进程失败
API-->>Consumer: 显示失败
end
API-->>BillingService: S开始计费流程
rect
使用rect
关键字可以高亮当前事件
格式:
rect rgb(0, 255, 0)
... content ...
end
rect rgba(0, 0, 255, .1)
... content ...
end
代码
sequenceDiagram
participant Alice as 爱丽丝
participant John as 约翰
rect rgb(191, 223, 255)
note right of Alice:爱丽丝给约翰打电话.
Alice->>+John: 约翰,最近怎样?
rect rgb(200, 150, 255)
Alice->>+John: 约翰,你能听到我的声音吗?
John-->>-Alice:嗨,爱丽丝,我能听到你的声音!
end
John-->>-Alice: 我感觉很不错!
end
Alice ->>+ John: 明天要去看比赛吗?
John -->>- Alice: 可以,明天见.
示例
link
使用link
可以增加超级链接,增加的超级连接会变成一个下拉菜单
格式:link <actor>: <link-label> @ <link-url>
代码
sequenceDiagram
participant a as 搜索引擎
participant b as mermaid学习
link a :百度 @ https://www.baidu/
link a :必应 @ https://cn.bing/?mkt=zh-cn
link b:mermaid @ https://mermaid.js
a->>b:可以通过搜索查找Mermaid的相关学习
示例
版权声明:本文标题:使用Markdown绘制UML图 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dianzi/1726616683a1078267.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论