PlantUML-活动图(新语法)

作者:vkvi 来源:ITPOW(原创) 日期:2022-3-19

PlantUML 新的活动图语法,活动以冒号开头,分号结束,不再是箭头。

基础与 if

start、stop、end、if、then、elseif、endif 是常用的关键词。

@startuml itpow

start
:打开网站;
if (正常打开?) then (yes)
    :看视频;
elseif (卡得很?) then (yes)
    :聊天;
else (no,打都打不开)
    stop
endif
stop

@enduml

PlantUML 活动图

then、else 括号后面的不是必须的,elseif、else 也是根据实际添加。

repeat 与 while 循环

repeat、repeat while、backward

start
repeat
repeat while
stop

PlantUML repeat

细化一下:

start
repeat : 吃
repeat while (这回吃饱了吧?) is (还没有)
stop

PlantUML repeat2

->xx; 为另一分支加上标签:

start
repeat : 吃
repeat while (这回吃饱了吧?) is (还没有)
->饱了;
stop

PlantUML repeat3

start
repeat : 吃
    :喝;
    backward:盛饭;
repeat while (这回吃饱了吧?) is (还没有)
->饱了;
stop


backward

while、end while

start
while (还有饭?) is (yes)
    :吃;
end while (no)
stop

PlantUML while

语法比较

  • repeat、repeat while 分支是在:

    • repeat while 使用 (xxx) is (xxx)

    • 另一分支在后面用 ->xx;(记得要分号)

  • while、end while 分支是在:

    • while 使用 (xxx) is (xxx)

    • 另一分支是在 end while 使用 (xxx)

分支和合并

fork、fork again、end fork

start
fork
    :买油;
fork again
    :买米;
fork again
    :买菜;
end fork
:做饭;
stop

PlantUML fork

end merge

end fork 可以改成 end merge

start
fork
    :买油;
fork again
    :买米;
fork again
    :买菜;
end merge
:做饭;
stop

PlantUML end merge

泳道和分组

|| 泳道

|A|
start
:买菜;

|B|
:做饭;

|A|
:洗碗;
stop

泳道

group 分组、partition 隔断,效果一样

start
group 饭前准备
    :买菜;
end group
partition 饭后收拾 {
    :擦桌;
    :洗碗;
}
stop

二者语法不一致,partitionpackagerectanglecard 都是使用的花括号。

group、partition

颜色

|#pink|A|
start
group 饭前准备
    #red:买菜;
end group
|B|
partition #green 饭后收拾 {
    -[#blue]->
    :擦桌;
    :洗碗;
}
stop

颜色

泳道:名称前面加,并加竖线

活动:冒号前面加。

线条:显式指定-[颜色]->

分割:名称前面加,并加空格

备注

:活动;
note left
备注内容
end note

使用 note 方向 + end note,即可对上面的活动进行备注。

竖向 if

if 默认是横向的,如果 elseif 较多,会导致横向太宽,可改为竖向的。

!pragma useVerticalIf on

说明:不论该命令在前在后,都会改变该图所有的 if 布局。

相关文章