[
](https://www.googleadservices.com/pagead/aclk?sa=L&ai=CJsdUwFkQZKmzJPqrvcAP3eS6mAOkjaCkb7veybXQEK0CEAEg9ZWvJmCdAaAB_9uKyAPIAQmoAwHIA8sEqgT9AU_QLmIl-RCUg2mmFS5Fb_8aUPQQgIORlPQxsozdb1Un3-TQuXy3pVcXxrxahFTgVoooGaEfkMgUojD7NeW9AvD-IMDHyP6HlgTXaobRa6US2WnHb7BYCh7_fkBDkeJ1TzOLffevla7GOcYh5kA4TP6-0slS0UGnH2Zny7nulMlwpEeyxUp5eH-GbcbSHtoSaEyo33_E0gCZlEq9LP8P9Pg2X0V8FvY1anOnga-sNEg_YsFe0FOmGsJBkE1WPvKfCQ5UyAx1EPRznEVjgkCKLMBK31dWZg2rbrcdW84quGtEPnthyS8vrCBuTcUN4YIY2ZS5iBBdtr8UJRX211XABNyWwNW0A6AGLoAHloatogKoB47OG6gHk9gbqAfulrECqAf-nrECqAeko7ECqAfVyRuoB6a-G6gHmgaoB_PRG6gHltgbqAeqm7ECqAf_nrECqAffn7EC2AcA0ggPCIBhEAEYHzICigI6AoBAsQkqA-yqWEbtC4AKAZgLAcgLAYAMAbgMAbgT5APYEwvQFQH4FgGAFwE&ae=1&num=1&cid=CAQSPADUE5ym_jEDVrF4jWaFoZS7Ji0jUPIxObJN8ITXc_AQzX_jPkbx4XIBbnr-AsuHJGmJGhozTSs5MhpUPxgB&sig=AOD64_0h0nuunBVtsvakdEQ5xRSI1_123Q&client=ca-pub-6527383233809815&rf=1&nb=9&adurl=https://www.grammarly.com/a%3Futm_source%3Dgdn%26utm_medium%3Dcpc%26utm_campaign%3DT3-tROASv2%26utm_content%3Dbmd2200%26utm_phase%3Dstudent%26gclid%3DEAIaIQobChMIqZOM7Kfb_QIV-lUPAh1dsg4zEAEYASAAEgJ7xvD_BwE)
[
](https://www.googleadservices.com/pagead/aclk?sa=L&ai=CJsdUwFkQZKmzJPqrvcAP3eS6mAOkjaCkb7veybXQEK0CEAEg9ZWvJmCdAaAB_9uKyAPIAQmoAwHIA8sEqgT9AU_QLmIl-RCUg2mmFS5Fb_8aUPQQgIORlPQxsozdb1Un3-TQuXy3pVcXxrxahFTgVoooGaEfkMgUojD7NeW9AvD-IMDHyP6HlgTXaobRa6US2WnHb7BYCh7_fkBDkeJ1TzOLffevla7GOcYh5kA4TP6-0slS0UGnH2Zny7nulMlwpEeyxUp5eH-GbcbSHtoSaEyo33_E0gCZlEq9LP8P9Pg2X0V8FvY1anOnga-sNEg_YsFe0FOmGsJBkE1WPvKfCQ5UyAx1EPRznEVjgkCKLMBK31dWZg2rbrcdW84quGtEPnthyS8vrCBuTcUN4YIY2ZS5iBBdtr8UJRX211XABNyWwNW0A6AGLoAHloatogKoB47OG6gHk9gbqAfulrECqAf-nrECqAeko7ECqAfVyRuoB6a-G6gHmgaoB_PRG6gHltgbqAeqm7ECqAf_nrECqAffn7EC2AcA0ggPCIBhEAEYHzICigI6AoBAsQkqA-yqWEbtC4AKAZgLAcgLAYAMAbgMAbgT5APYEwvQFQH4FgGAFwE&ae=1&num=1&cid=CAQSPADUE5ym_jEDVrF4jWaFoZS7Ji0jUPIxObJN8ITXc_AQzX_jPkbx4XIBbnr-AsuHJGmJGhozTSs5MhpUPxgB&sig=AOD64_0h0nuunBVtsvakdEQ5xRSI1_123Q&client=ca-pub-6527383233809815&rf=1&nb=19&adurl=https://www.grammarly.com/a%3Futm_source%3Dgdn%26utm_medium%3Dcpc%26utm_campaign%3DT3-tROASv2%26utm_content%3Dbmd2200%26utm_phase%3Dstudent%26gclid%3DEAIaIQobChMIqZOM7Kfb_QIV-lUPAh1dsg4zEAEYASAAEgJ7xvD_BwE)
[
Install
](https://www.googleadservices.com/pagead/aclk?sa=L&ai=CJsdUwFkQZKmzJPqrvcAP3eS6mAOkjaCkb7veybXQEK0CEAEg9ZWvJmCdAaAB_9uKyAPIAQmoAwHIA8sEqgT9AU_QLmIl-RCUg2mmFS5Fb_8aUPQQgIORlPQxsozdb1Un3-TQuXy3pVcXxrxahFTgVoooGaEfkMgUojD7NeW9AvD-IMDHyP6HlgTXaobRa6US2WnHb7BYCh7_fkBDkeJ1TzOLffevla7GOcYh5kA4TP6-0slS0UGnH2Zny7nulMlwpEeyxUp5eH-GbcbSHtoSaEyo33_E0gCZlEq9LP8P9Pg2X0V8FvY1anOnga-sNEg_YsFe0FOmGsJBkE1WPvKfCQ5UyAx1EPRznEVjgkCKLMBK31dWZg2rbrcdW84quGtEPnthyS8vrCBuTcUN4YIY2ZS5iBBdtr8UJRX211XABNyWwNW0A6AGLoAHloatogKoB47OG6gHk9gbqAfulrECqAf-nrECqAeko7ECqAfVyRuoB6a-G6gHmgaoB_PRG6gHltgbqAeqm7ECqAf_nrECqAffn7EC2AcA0ggPCIBhEAEYHzICigI6AoBAsQkqA-yqWEbtC4AKAZgLAcgLAYAMAbgMAbgT5APYEwvQFQH4FgGAFwE&ae=1&num=1&cid=CAQSPADUE5ym_jEDVrF4jWaFoZS7Ji0jUPIxObJN8ITXc_AQzX_jPkbx4XIBbnr-AsuHJGmJGhozTSs5MhpUPxgB&sig=AOD64_0h0nuunBVtsvakdEQ5xRSI1_123Q&client=ca-pub-6527383233809815&rf=1&nb=8&adurl=https://www.grammarly.com/a%3Futm_source%3Dgdn%26utm_medium%3Dcpc%26utm_campaign%3DT3-tROASv2%26utm_content%3Dbmd2200%26utm_phase%3Dstudent%26gclid%3DEAIaIQobChMIqZOM7Kfb_QIV-lUPAh1dsg4zEAEYASAAEgJ7xvD_BwE)
1.1 什么是Markdown?
Markdown是一种语法特别少、特别简单的标记语言,用来编写文档。用Markdown编写的文档是纯文本格式,经过编辑器的渲染,就会形成排
版优美的文档,本文就是用Markdown编写的。如果我们使用Markdown来编写文档,就不用再像用Word那样疲累于设置标题、缩进、左右对齐、
字体大小等烦杂的工作,而可以完全不考虑排版的事情,专心于写作的内容。Markdown现在已经被广泛使用,一些科技博客的编辑器支持
Markdown,一些新兴的写作阅读平台,比如简书,也支持Markdown,还有github上所有项目的README.md就是用Markdown
写的。
1.2 什么是UML时序图?
UML时序图是众多UML图中的一种,用图形来表示某个系统中的时序关系。它通过描述对象之间发送消息的时间顺序来显示多个对象之间的交互关系。程序员设计模块的时候,常常会画UML时序图来描述模块中几个对象的交互,以此来理清头绪或者向人解说。
2. 为什么用Markdown来绘制UML时序图?
绘制UML时序图的方法有很多,Visio可以绘制时序图,还有一些网站也可以绘制时序图。但是用这些方式,需要大量的拖拖拽拽,勾勾连连,很费时间。如果用Markdown的话,只需用特别简单易懂的几个语法,很快就可以描绘出时序图。
3. 事先准备
Markdown编辑器。以下所列的Markdown编辑器都支持绘制UML时序图,选取其中一个即可: 为知笔记(为知笔记创建Markdown笔记的方式比较特殊,请读者自行查阅为知笔记的帮助内容) 作业部落 CSDN博客编辑器 马克飞象(收费)
4. 语法讲解
上面列出的几种编辑器支持的绘制UML时序图的语法是一样的,只是各编辑器用来标识时序图部分的方法不尽相同。下面的标识方法是以为知笔记为准,其他编辑器的标识方法请具体参考各编辑器的帮助说明。
4.1 标识时序图
4.2 创建Title
title: Title
4.3 创建Actor
participant A
participant B
participant C as C_Alias
创建了A、B、C三个Actor。其中C的创建中,as C_Alias表示给C起一个别名,叫C_Alias。
4.4 Actor的交互
A->B: how are you?
B-->>A: fine.
->中,-代表实线,>代表实心箭头,还可以用--表示虚线,>>表示非实心箭头。在UML时序图中,实线表示主动发送消息,虚线表示返回(应答)消息,实心箭头表示同步消息(消息发送者停止活动等待应答消息),非实心箭头表示异步消息(消息发送者无须停止活动等待应答消息)。->两边可以是同一个Actor,表示自交互:
A->A: 内心os
4.5 多个Actor的交互
A->B: how are you, B?
B->C: how are you, C?
C->A: how are you, A?
4.6 给Actor添加Note
Note right of A: I'm A
Note left of A: I'm A
Note over A: I'm A
Note over A, B: We're friends.
到此为止,绘制UML时序图的所有语法都讲完了,很少吧。另外,查阅语法可以看这张图(引用自js-sequence-diagram项目):
下面,就让我们用Markdown画一个实际的系统吧。
5. 用Markdown绘制典型的客户端登录时序图
登陆流程大致是:用户在客户端输入通行证的账号密码来登陆一个服务器,这里不考虑第三方登陆,不考虑登陆失败的情况。
participant 客户端
participant 服务器
participant 通行证中心
Note over 客户端: 用户输入通行证的账号、密码
客户端->通行证中心: 发送账号、密码
Note over 通行证中心: 验证账号、密码
通行证中心-->>客户端: 返回token
客户端->服务器: 发送token
服务器->通行证中心: 验证token
通行证中心-->>服务器: 验证成功
服务器-->>客户端: 登陆成功
6. 限制
Markdown绘制UML时序图虽然简单、快速,但是缺少对一些UML时序图基本元素的支持,比如Focus
of Control、Combined
Fragments、对象的中途创建和对象的销毁。所以当你需要添加一些循环或者分支结构的消息时,或者需要中途创建对象、中途销毁对象
时,Markdown就不能满足你的要求了。不过,技术一直在进步,将来Markdown或许能画出更复杂的时序图来。
10分钟学会Linux有点夸张,可是能够让一个新手初步熟悉Linux中最重要最主要的知识,本文翻译的英文网页在众多Linux入门学习的资料中还是很不错的. 英文地址:http://freeengine ...
原文地址:Markdown 绘制 UML 图 -- PlantUML + Gravizo
在VSCode使用Markdown绘制UML图 需要插件 Markdown All in One Markdown Preview Enhanced PlantUML markdownlint Mar ...
10分钟学会搭建Android开发环境_隋雨辰 http://v.youku.com/v_show/id_XNTE2OTI5Njg0.html?from=s1.8-1-1.2 The import a ...
前言 我们之前实现了打包发布NuGet,但是发布后的引用是公有的,谁都可以访问,显然这种方式是不可取的. 命令版本:10分钟学会Visual Studio将自己创建的类库打包到NuGet进行引用(ne ...
什么是时序图时序图(Sequence Diagram),又名序列图.循序图,是一种UML交互图.它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作. 让我们来看一看visio2016对时序 ...
前言 在我的工作中,用的最多的就是时序图了.可能由于工作的原因,我也是最喜欢画时序图了,很清楚,很明了,什么时候发送什么消息,到达什么状态,一下子就展示在你的脑海里,对于消息驱动的程序来说,是再好不过 ...
2.使用工厂方法模式设计能够实现包含加法(+).减法(-).乘法(*).除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果.要求使用相关的工具绘制UML类图并严格按照类图的设计编写程 ...
1.使用简单工厂模式设计能够实现包含加法(+).减法(-).乘法(*).除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果.要求使用相关的工具绘制UML类图并严格按照类图的设计编写程 ...
我的BO 1-我的BO之强类型 2-我的BO之数据保护 3-我的BO之状态控制 4-我的BO之导航属性 数据保护指什么 软件的运行离不开数据,数据一般存在对象中.这种对象在 Java 统称为 POJO ...
当前基于kafaka最新版 kafka_2.12-2.2.1.tgz 进行配置 . 官网地址:http://kafka.apache.org/intro kafka的一些基础知识 参考:http:// ...
常用类之String String字符串类 什么是字符串?就是把多个字符,串连一起. String字符串的本质 其实是一个char[]数组 /*该值用于字符存储./ private final c ...
私钥加密的部分内容,需要用公钥解密下面的实例代码,由于私钥加密后的字符串有不可打印字符,所以程序里面进行了base64,要用的时候先解dec base64 再传递给函数 进行解密 #include & ...
1 安装阿里云的镜像站 #将原来的镜像备份 cd /etc/yum.repos.d/ mkdir back mv CentOS-Base.repo ./back/ # 安装阿里的镜像 wget -O ...
chrome://plugins 为什么无法打开? Chrome插件问答 2018-03-02 13:34 最后又很多网友在我们 chrome插件 网反应说chrome://plugins 无 ...
Springboot中使用了Hibernate-validate作为默认表单数据校验框架 在实体类上的具体字段添加注解 public class User { @NotBlank private St ...
1. #if IS_ENABLED(CONFIG_XXX) 1.1 IS_ENABLED的定义如下: / IS_ENABLED(CONFIG_FOO) evaluates to 1 if CON ...
android studio 错误汇总以及解决办法 参考 https://www.jianshu.com/p/7c7de6562231 问题1. Error:Execution failed for ...
import UIKit class ViewController: UIViewController ,UIActionSheetDelegate{ @IBAction func btn1(_ se ...
原网址: 访问
创建于: 2023-03-14 19:26:25
目录: default
标签: 无
未标明原创文章均为采集,版权归作者所有,转载无需和我联系,请注明原出处,南摩阿彌陀佛,知识,不只知道,要得到
最新评论