PlantUML画出如女神漂亮的流程图

news/2024/5/18 22:48:31 标签: 流程图, vscode, plantUML

一:环境准备

        1,本地安装好vscode

        2,vscode安装PlantUML插件

b0541a1ee4e7401095d2a343ab10544c.png

        3,本地安装java环境,我本地用的是jdk-11.0.17+8,配置好环境变量

        4,在vscode上新建一个文件以wsd结尾,输入以下两行,然后按alt+d按键,右边可以调出预览视图,并且预览是实时的,每写一行在右边都会呈现出总体流程图,效果如下

@startuml
@enduml

0044c8aa607240b7a660915e6513ddde.png

至此本地环境就准备好了 ,接下来就是逐步讲解每个组件的使用了

二:流程图详解

1,开始和结束

@startuml
start
end
@enduml

3025b7dd412a438c868ca6dc84e1a675.png

 2,流程框

@startuml
start
:我要从南走到北;
:还要从北走到黑;
:我要人们都告诉我;
end
@enduml

6bd5102ed304460f98303ec62e57b1d6.png

 3,条件判断

条件判断就是if-else,有两种形式,如下所示 

@startuml
start
if( a == b )then(yes)
    :a = 1;
else(no)
    :b = 100;
endif

if( a ) equals ( b ) then
    : c = 888;
else
    : d = 999;
endif

end
@enduml

de073799857e4afa96e5e738fe2ef6db.png

 4,循环

        循环主要展示了如下三种样式,第一种就是常规的while循环流程图,第二种用的是repeat有些类似do-while的循环流程图,第三种是while的另一种表达方式,大家可以根据实际需要去选择使用哪一种的循环

@startuml
start
while( a == b )
:a++;
if(a != b)then(yes)
:break;
endif
endwhile
end
@enduml

37681ff5728340bbbd099fd4312e81b6.png

@startuml
start
repeat
:read data;
:generate diagrams;
repeat while (more data?)
stop
@enduml

045e88946f9244569a2469ff809ba340.png

@startuml
start
while (check filesize ?) is (not empty)
:read file;
endwhile (empty)
:close file;
stop
@enduml

a93c06ba5f4d40fdb033ed5b7458015a.png

5,switch case

        switch case应该是程序设计中比较常见的语句了,在PlantUML中当然也有switch case的一席之地,建议大家在写 PlantUML语句时候,也和写代码一下,通过行的缩进来保持层次感,这样一是易读,二是也方便修改

@startuml
start
switch(type)
    case(1)
        :process-1;
    case(2)
        :process-2;
    case(3)
        :process-3;
    case(default)
        :process-default;
endswitch
end
@enduml

f90c558a062743ab871cf2805ba2a0e2.png

 6,框图上色,范围框

        这个这是锦上添花了,如果想要流程图好像些,可以给组件上色,语法如下,另外如果对某个流程相加注释也是可以的 。有的流程是属于一个模块可以用partition来囊括这个模块内的流程,使流程图更加的清晰。

@startuml
title 流程图
start
partition "proc" {
    #HotPink:psFunction1;
    note left #Pink
    函数1-作用XXX
    end note
    #BlueViolet:psFunction2;
    note left
    函数2-作用XXX
    end note
}
end
@enduml

b7361b66b6ba4730bf568e9a93bec18b.png

 7,注释,页眉页脚

@startuml
title this is my title
if (condition?) then (yes)
:yes;
else (no)
:no;
note right
this is a note
end note
endif
stop
legend
this is the legend
endlegend
footer dummy footer
header
this is
a long __dummy__ header
end header
@enduml

 77e5421bc6ba41dc80df8535de7fbcfe.png

8,箭头

 9,复杂流程图

        下面展示一个比较复杂的流程图,大家写复杂流程图的需求可以参考一下 

@startuml
start
:ClickServlet.handleRequest ();
:new page;
if (Page.onSecurityCheck) then (true)
:Page.onInit();
if (isForward?) then (no)
:Process controls;
if (continue processing?) then (no)
stop
endif
if (isPost?) then (yes)
:Page.onPost();
else (no)
:Page.onGet();
endif
:Page.onRender ();
endif
else (false)
endif
if (do redirect?) then (yes)
:redirect process;
else
if (do forward?) then (yes)
:Forward request;
else (no)
:Render page template;
endif
endif
stop
@enduml

三:总结

        以上只是展示PlantUML画流程图的一部分,PlantUML的能力远不止如此。后续仍将不断更新


http://www.niftyadmin.cn/n/137159.html

相关文章

【java】理解Java8里面CompletableFuture异步编程

文章目录什么是CompletableFuture?Future vs CompletableFuture简单的使用CompletableFuture高级的使用CompletableFuture什么是CompletableFuture? CompletableFuture在Java里面被用于异步编程,异步通常意味着非阻塞,可以使得我…

SpringBoot 中的 Aop + 自定义注解(内含源代码)

SpringBoot 中的 Aop 自定义注解(内含源代码) 源代码下载链接地址:https://download.csdn.net/download/weixin_46411355/87553544 目录SpringBoot 中的 Aop 自定义注解(内含源代码)源代码下载链接地址:…

linux安装mysql-8.0.31

1)、下载mysql-8.0.31压缩包两种方式 a.本地下载后上传服务器解压,下载地址:https://downloads.mysql.com/archives/community/ b.服务器使用命令下载,注意:路径在那,就下载到那个位置。 wget https://dev.mysql.com/…

使用 KMS 驱动进行数据加密

本页展示了如何配置密钥管理服务(Key Management Service,KMS)驱动和插件以启用 Secret 数据加密。 目前有两个 KMS API 版本。KMS v1 将继续工作,而 KMS v2 将开发得逐渐成熟。 如果你不确定要选用哪个 KMS API 版本,…

C++ 之动态内存分配

文章目录参考描述动态内存分配new 运算符与 delete 运算符new 运算符delete 运算符空指针与悬空指针内存泄漏参考 项目描述精通C (第九版)托尼加迪斯、朱迪沃尔特斯、戈德弗雷穆甘达 (著) / 黄刚 等 (译)搜…

【Mysql】查询数据库,行转列,mapper.xml中查询条件的写法

目录 一、用mysql脚本建表二、现有以下三个实体对应三张表,其关联关系如下三、行转列的sql语句四、对应的mapper.xml写法五、输入某一关键字,查找车牌号或车名包含该关键字的车辆用or六、总结:用GROUP_CONCAT实现行转列一、用mysql脚本建表 …

优化Facebook广告ROI的数据驱动方法:从投放到运营

“投放广告并不是最终的目的,关键在于如何最大程度地利用数据驱动的方法来提高广告投放的回报率(ROI)”Facebook广告是现代数字营销中最为常见和重要的广告形式之一。但是,要让Facebook广告真正发挥作用,需要通过数据驱…

佩戴舒适的蓝牙耳机品牌有哪些?不伤耳朵的蓝牙耳机推荐

现在不少人都离不开耳机吧?但什么样的耳机才是安全的、不伤耳的?更多的人看重耳机的重量,但是否贴合耳廓也是十分重要的,下面整理了几款当前热销佩戴舒适的蓝牙耳机,可供大家选购参考。 第一款:南卡小音舱蓝…