plantuml 之序列圖(二)
阿新 • • 發佈:2019-01-03
給自己發訊息
參與者可以給自己發訊息. 如圖 1-6 所示.
圖 1-6
圖 1-6 程式碼 (摘自官方文件)
@startuml
' 若訊息很長, 可以使用 "\n" 換行.
' 訊息預設是或對齊.
' 參與者名稱則是預設中間對齊.
Alice->Alice: This is a signal to self.\nIt also demonstrates\nmultiline \ntext
@enduml
給訊息編號
autonumber
. 從 1 開始對訊息自動編號.autonumber START
. 從 START 開始對訊息自動編號.autonumber START INCREMENT
圖 1-7 展示了上述編號方法.
圖 1-7
圖 1-7 程式碼
@startuml
autonumber
Bob -> Alice : Message 1
Bob <- Alice : Message 2
autonumber 15
Bob -> Alice : Message 15
Bob <- Alice : Message 16
autonumber 40 10
Bob -> Alice : Message 40
Bob <- Alice : Message 50
@enduml
序列圖分頁
通過關鍵字 newpage
可以將一幅大圖切分成小圖. 可以給分割得到圖加上 title,
語法為 new page TITLE
, 如圖 1-8.1, 圖 1-8.2, 圖 1-8.3 所示.
注意: 圖 1-8.1 在底部參與者名稱上方加了一條虛線, 表示有被分割的後續圖.
圖 1-8.2 在頂部參與者名稱下方與底部參與者名稱上方都加了一條虛線,
表示此圖有被分割的前圖與後續圖. 圖 1-8.3 頂部參與者名稱下方加了一條虛線,
表示此圖有被分割的前圖.
圖 1-8.1
圖 1-8.2
圖 1-8.3
圖 1-8.x 程式碼
@startuml
title A title for \nthe first page
Alice -> Bob : message 1
Alice -> Bob : message 2
newpage A title for \nthe middle page
Alice -> Bob : message 3
Alice -> Bob : message 4
newpage A title for \nthe last page
Alice -> Bob : message 5
Alice -> Bob : message 6
@enduml
訊息分組
可使用下面的關鍵字對訊息分組, 並且分組可以巢狀.
alt
/alt
opt
par
break
critical
group
end
, 與上面關鍵字配合, 用於結束一個分組
上述分組關鍵字 (除 end
) 可以跟文字. 對於 group LABLE
, 作為標籤顯示 “LABEL”,
其它關鍵字顯示為 “[TEXT]
“. 圖 1-9 是這些使用上述關鍵字的結果圖.
圖 1-9
圖 1-9 程式碼
@startuml
Alice -> Bob: Message 1
alt Alt text
Bob -> Alice: Message 2
else Else text
Bob -> Alice: Message 3
group Group label
Alice -> Log : Message 4
loop 1000 times
Alice -> Bob: Message 5
end
Alice -> Log : Message 6
end
else Else another text
Bob -> Alice: Message 7
end
@enduml
對訊息進行註釋說明
註釋說明使用下面的關鍵, 且放於待註釋訊息緊後一行.
note left : TEXT
note right : TEXT
end note
, 當註釋說明文字佔多行時, 使用此來結束註釋
還可以通過 #COLOR
來指定註釋圖示的背景色. 效果見圖 1-10.
圖 1-10
圖 1-10 程式碼
@startuml
Alice ->Bob : Message 1
note left #Red : Note 1
Bob->Alice : ok
note right : Note 2
Bob->Bob : Message 2
note left
Note 3 first line
Note 3 second line
Note 3 last line
end note
@enduml
還可以使用下面的關鍵字進行註釋
note left of 參與者
note right of 參與者
note over
後跟多個參與者, 參與者之間用逗號分隔,
吏得註釋的圖示在指定的多個參與者生命線上方.
上述關鍵字也可以通過 #COLOR
來指定註釋圖示的背景色. 效果見圖 1-11.
圖 1-11
圖 1-11 程式碼
@startuml
participant Alice
participant Bob
note left of Alice #aqua
This is
left note
end note
note right of Alice: This is right note
note over Alice: This is over note
note over Alice , Bob #FFAAAA: This is \n large over note
note over Bob, Alice
This is
another large over note
end note
@enduml
改變註釋圖示形狀
hnote
, 平行六邊形 (hexagon). 若註釋文字多行, 以endhnote
結束rnote
, 知形 (rectangle). 若註釋文字多行, 以endrnote
結束
這兩個關鍵也可以與 over
邊用, 效果見圖 1-12.
圖 1-12
圖 1-12 程式碼
@startuml
Bob -> Alice : Message 1
hnote over Bob : "h" note
Bob <- Alice: Message 2
rnote over Alice
"r" note
endrnote
@enduml