plantuml 之序列图(四)

  • 流入消息与流出消息
  • 构造型与 spot
  • 对参与者分组
  • 去除参与者底部方框
  • 改变文本与边框的填充空间

流入消息与流出消息

流入消息指流入序列图的消息, 并非由序列图中的参与者发出的;
流出消息指流出序列图的消息, 亦非由序列图中的参与者发出.

在定义 消息箭头 的语法前或后加上 [] 分别表示注入消息与流出消息.

效果见图 1-20.


plantuml 之序列图(四)_第1张图片
图 1-20

图 1-20 代码

@startuml

[-> A: 流入消息
activate A

A -> A: Internal call
activate A

A ->] : 流出消息
A<--] : 流入消息
deactivate A

[<- A: 流出消息
deactivate A


== 可以更多的语法 ==

[-> A
[o-> A
[o->o A
[x-> A
[<- A
[x<- A

Bob ->]
Bob ->o]
Bob o->o]
Bob ->x]
Bob <-]
Bob x<-]

@enduml

构造型与 spot

可以在参与者后面加上 << >> 为参与者指定构造型. 在 << >> 中间可以加上
(X, #COLOR) 指定字符图标 (spot) 与颜色, 其中 ‘X’ 为一个字符. 具体语法为

  • <<(X, #COLOR)TEXT>>, TEXT 为构造型名称

效果见图 1-21.


plantuml 之序列图(四)_第2张图片
图 1-21

图 1-21 代码, 摘自官方文档

@startuml

participant "Famous Bob" as Bob << Generated >>
participant Alice << (C,#ADD1B2) Testable >>
Bob->Alice: First message

@enduml

对参与者分组

  • boxend box

    在其间定义的参与者将被分成一组, 显示在同一个矩形内.

  • box TITLE

    可为组取一个组名或标题.

效果见图 1-22.


plantuml 之序列图(四)_第3张图片
图 1-22

图 1-22 代码, 摘自官方文档

@startuml

box "Internal Service" #LightBlue
    participant Bob
    participant Alice
end box

participant Other
Bob -> Alice : hello
Alice -> Other : hello

@enduml

去除参与者底部方框

在序列图中, 参与者在序列图的顶部与底部均有一个相同的方框, 通过 hide footbox
可以去除底部的方框, 效果见图 1-23.


plantuml 之序列图(四)_第4张图片
图 1-23

图 1-23 代码

@startuml

hide footbox

title Footer removed
Alice -> Bob: Message 1
Bob --> Alice: Message 2

@enduml

改变文本与边框的填充空间

使用 skinparam 命令, 效果见图 1-24.


plantuml 之序列图(四)_第5张图片
图 1-24

图 1-24 代码, 摘自官方文档

@startuml

skinparam ParticipantPadding 20
skinparam BoxPadding 10

box "Foo1"
    participant Alice1
    participant Alice2
end box

box "Foo2"
    participant Bob1
    participant Bob2
end box

Alice1 -> Bob1 : hello
Alice1 -> Out : out

@enduml

你可能感兴趣的:(UML)