plantuml 之序列图(二)

给自己发消息

参与者可以给自己发消息. 如图 1-6 所示.


图 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. 从 START 开始, 按 增量 INCREMENT 对消息自动编号.

图 1-7 展示了上述编号方法.


图 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.1


图 1-8.2
图 1-8.2


图 1-8.3
图 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

图 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

图 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

图 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

图 1-12 代码

@startuml

Bob -> Alice : Message 1
hnote over Bob : "h" note

Bob <- Alice: Message 2
rnote over Alice
    "r" note
endrnote

@enduml

猜你喜欢

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