前言
在分析代码流程中,我们常常会使用到各种UML图,例如用例图、时序图和类图等,以往使用ProcessOn或亿图图示等工具,但是这些工具难以规范化,有没有一种用代码来生成图形的工具呢?
刚好在出差的晨会中机缘巧合下认识了PlantUML,这不赶快学习一波。该博文用于记录自己的常用项,用于快速生成UNL图形。
plantuml官网
类元素
接口
用关键字interface来定义接口。
@startuml
interface List
@enduml

抽象类
用关键字abstract或abstract class来定义抽象类。抽象类用斜体显示。
@startuml
abstract class AbstractList
abstract AbstractCollection
@enduml

枚举
用enum来定义枚举。
@startuml
enum TimeUnit {
DAYS
HOURS
MINUTES
}
@enduml

访问控制
针对属性和方法的可访问性控制。属性是空心的,方法是实心的。
| 可访问性 | 字符 | 图标(属性) | 图标(方法) |
|---|---|---|---|
| public | + | ![]() | ![]() |
| protected | # | ![]() | ![]() |
| private | - | ![]() | ![]() |
属性和成员函数
@startuml
class Dummy {
+int field0;
#string field1;
-double field2;
+void method0();
#double method1();
-char method2();
}
@enduml

类关系
关系的强弱:泛化>实现>组合>聚合>关联>依赖。
| 关系 | 符号 | 展示 |
|---|---|---|
| 泛化 | <|- | ![]() |
| 实现 | <|. | ![]() |
| 组合 | *- | ![]() |
| 聚合 | o- | ![]() |
| 关联 | <- | ![]() |
| 依赖 | <. | ![]() |
箭头方向
--和..代表垂直方向;-和.代表水平方向。或者在--和..之前使用left、right、up和down来指定方向。
注释
以'开头的行为注释。
'https://plantuml.com/sequence-diagram
后记
随着对复杂问题的处理,结合图形能做到事半功倍的效果。可笑的是在上学期间对这些敬而远之,而如今缺仿佛如获至宝。果然个人的局限性以及教育的滞后性会让人感慨万分。































