前言
在分析代码流程中,我们常常会使用到各种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后记
随着对复杂问题的处理,结合图形能做到事半功倍的效果。可笑的是在上学期间对这些敬而远之,而如今缺仿佛如获至宝。果然个人的局限性以及教育的滞后性会让人感慨万分。






















