前言
在分析代码流程中,我们常常会使用到各种UML图,例如用例图、时序图和类图等,以往使用ProcessOn或亿图图示等工具,但是这些工具难以规范化,有没有一种用代码来生成图形的工具呢?
刚好在出差的晨会中机缘巧合下认识了PlantUML,这不赶快学习一波。该博文用于记录自己的常用项,用于快速生成UNL图形。
plantuml官网
类元素
接口
用关键字interface
来定义接口。
UML
@startuml
interface List
@enduml
抽象类
用关键字abstract
或abstract class
来定义抽象类。抽象类用斜体显示。
UML
@startuml
abstract class AbstractList
abstract AbstractCollection
@enduml
枚举
用enum
来定义枚举。
UML
@startuml
enum TimeUnit {
DAYS
HOURS
MINUTES
}
@enduml
访问控制
针对属性和方法的可访问性控制。属性是空心的,方法是实心的。
可访问性 | 字符 | 图标(属性) | 图标(方法) |
---|---|---|---|
public | + | ||
protected | # | ||
private | - |
属性和成员函数
UML
@startuml
class Dummy {
+int field0;
#string field1;
-double field2;
+void method0();
#double method1();
-char method2();
}
@enduml
类关系
关系的强弱:泛化>实现>组合>聚合>关联>依赖。
关系 | 符号 | 展示 |
---|---|---|
泛化 | <|- | |
实现 | <|. | |
组合 | *- | |
聚合 | o- | |
关联 | <- | |
依赖 | <. |
箭头方向
--
和..
代表垂直方向;-
和.
代表水平方向。或者在--
和..
之前使用left
、right
、up
和down
来指定方向。
注释
以'
开头的行为注释。
UML
'https://plantuml.com/sequence-diagram
后记
随着对复杂问题的处理,结合图形能做到事半功倍的效果。可笑的是在上学期间对这些敬而远之,而如今缺仿佛如获至宝。果然个人的局限性以及教育的滞后性会让人感慨万分。