plantuml 之序列图(三)

分隔序列图

若序列图的各部分有明显的逻辑区分, 可以使用 ==== 或更多的个 =
对序列图进行分隔, 分隔中间可以加文本 ==TEXT==. 效果见图 1-13.


图 1-13
图 1-13

图 1-13 代码

@startuml

== Initialization ==
Alice -> Bob: Message 1
Bob --> Alice: Message 2
====

Alice -> Bob: Message 3
Alice <-- Bob: Message 4

@enduml

引用其它序列图

对一个系统进行分解会形成多个序列图. 在某个序列图中可以引用其它序列图,
使用的关键字如下

  • ref over, 后可跟多个参与者, 以逗号分隔
  • end ref, 若引用时使用了多行文本, 以此来结束引用

效果图如图 1-14 所示.


图 1-14
图 1-14

图 1-14 代码, 引用自官方文档

@startuml

participant Alice
actor Bob
ref over Alice , Bob : init
Alice -> Bob : hello
ref over Bob
This can be on
several lines
end ref

@enduml

延迟消息

使用 ... 来描述延迟消息, 在相应参与者生命线上会产生虚线. 还可以使用
...TEXT... 来为延迟指定文本. 效果图见图 1-15.


图 1-15
图 1-15

图 1-15 代码

@startuml

Alice -> Bob: Message 1

...

Bob --> Alice: Message 2

...5 minutes latter...

Bob --> Alice: Message 3

@enduml

增加消息箭头上下间隔

默认情况下各消息箭线之间的间隔是相等的,
可以使用下面的语法增加消息箭头之间的间隔

  • |||, 可以使用更多的 |, 效果见图 1-16.
  • ||DIGIT||, DIGIT 指定了间隔大小, 以象素为单位


图 1-16
图 1-16

图 1-16 代码, 引用自官方文档

@startuml

Alice -> Bob: message 1
Bob --> Alice: ok

|||

Alice -> Bob: message 2
Bob --> Alice: ok

||45||

Alice -> Bob: message 3
Bob --> Alice: o

@enduml

生命线激活与销毁

  • activate, 激活, 生命线出现
  • deactivate, 解除, 生命线消失
  • destory, 销毁, 生命线结束, 并出现 ‘X’

上述关键字仅影响紧前角色的生命线绘制. 另外, 生命线可以嵌套, 且以 #COLOR
语法可以指定生命线的颜色. 效果见图 1-17, 图 1-18.


图 1-17
图 1-17


图 1-18
图 1-18

图 1-17 代码

@startuml

participant User

User -> A: Message 1
activate A

A -> B: Message 2
activate B

B -> C: Message 3
activate C

C --> B: Message 4
destroy C

B --> A: Message 5
deactivate B

A -> User: Message 5
deactivate

@enduml

图 1-18 代码

@startuml

participant User

User -> A: Message 1
activate A #FFBBBB

A -> A: Message 2
activate A #DarkSalmon

A -> B: Message 3
activate B

B --> A: Message 4
deactivate B
deactivate A

A -> User: Message 5
deactivate

@enduml

创建参与者

在第一次接收消息紧前使用下面的语法创建一个参与者, 表示此消息创建了参与者.

  • create NAME, 创建的参与者名称为 “NAME”
  • create SHAPE NAME, 创建的参与者名称为 “NAME”, 使用的图标形状为 “SHAPE”

效果见图 1-19.


图 1-19
图 1-19

图 1-19 代码

@startuml

Bob -> Alice : Message 1
create Other

Alice -> Other : Create
create control String

Alice -> String
note right : A note
Alice --> Bob : Message 2

@enduml

猜你喜欢

转载自blog.csdn.net/ding_yingzi/article/details/80464807