语法学习小结
简单示例
可以用->
来绘制参与者之间传递的消息, 而不必显式地声明参与者。也可以使用 -->
绘制一个虚线箭头。另外,还能用 <-
和 <--
,这不影响绘图,但可以提高可读性。 注意:仅适用于时序图,对于其它示意图,规则是不同的。
声明参与者
关键字 participant
用于改变参与者的先后顺序。也可以使用其它关键字来声明参与者:关键字 as
用于重命名参与者,可以使用RGB值或者颜色名修改 actor 或参与者的背景颜色。可以使用关键字 order
自定义顺序来打印参与者。
在参与者中使用非字母符号
可以使用引号定义参与者,还可以用关键字 as
给参与者定义别名。
给自己发消息
参与者可以给自己发信息,消息文字可以用\n
来换行。
修改箭头样式
修改箭头样式的方式有以下几种:
表示一条丢失的消息:末尾加 x
让箭头只有上半部分或者下半部分:将<
和>
替换成\
或者 /
细箭头:将箭头标记写两次 (如 >>
或 //
)
虚线箭头:用 --
替代 -
箭头末尾加圈:->o
双向箭头:<->
修改箭头颜色
可以用以下记号修改箭头的颜色:
对消息序列编号
关键字 autonumber
用于自动对消息编号。语句 autonumber start
用于指定编号的初始值,而 autonumber startincrement
可以同时指定编号的初始值和每次增加的值。可以在双引号内指定编号的格式。格式是由 Java 的DecimalFormat
类实现的: (0
表示数字;#
也表示数字,但默认为0)。也可以用 HTML 标签来制定格式。还可以用语句 autonumber stop
和 autonumber resume incrementformat
来表示暂停或继续使用自动编号。
分割示意图
关键字 newpage
用于把一张图分割成多张。在 newpage
之后添加文字,作为新的示意图的标题。这样就能很方便地在 Word 中将长图分几页打印。
组合消息
可以在标头(header)添加需要显示的文字(group
除外)。关键词 end
用来结束分组。注意,分组可以嵌套使用。
给消息添加注释
可以通过在消息后面添加 note left
或者 note right
关键词来给消息添加注释。也可以通过使用 end note
来添加多行注释。
其他的注释
可以使用note left of
,note right of
或note over
在节点(participant)的相对位置放置注释。还可以通过修改背景色来高亮显示注释。以及使用关键字end note
来添加多行注释。
改变备注框的形状
可以使用 hnote
和 rnote
这两个关键字来修改备注框的形状。
Creole和HTML
分隔符
可以通过使用 ==
关键词来将你的图表分割多个步骤。
引用
你可以在图中通过使用ref over
关键词来实现引用
延迟
可以使用...
来表示延迟,并且还可以给延迟添加注释。
空间
可以使用|||
来增加空间。还可以使用数字指定增加的像素的数量。
生命线的激活与撤销
关键字activate
和deactivate
用来表示参与者的生命活动。一旦参与者被激活,它的生命线就会显示出来。activate
和deactivate
适用于以上情形。destroy
表示一个参与者的生命线的终结。
进入和发出消息
如果只想关注部分图示,你可以使用进入和发出箭头。使用方括号[
和]
表示图示的左、右两侧。
包裹参与者
可以使用box
和end box
画一个盒子将参与者包裹起来。还可以在box
关键字之后添加标题或者背景颜色。
填充区设置
可以设定填充区的参数配置。
工厂采购
@startuml
skinparam sequence {
ArrowColor DeepSkyYellow
ActorBorderColor DeepSkyYellow
LifeLineBorderColor #A9A9A9
LifeLineBackgroundColor #FFFFE0
ParticipantBorderColor DeepSkyYellow
ParticipantBackgroundColor DodgerYellow
ParticipantFontName Impact
ParticipantFontSize 17
ParticipantFontColor #D1D1D1
ActorBackgroundColor aqua
ActorFontColor DeepSkyYellow
ActorFontSize 17
ActorFontName Aapex
}
actor 采购员 #red
participant "订货界面" as A
participant "订货管理器" as B
participant "客户" as C
participant "货品" as D
participant "订单" as E
采购员 -> A: 客户信息()
activate A
采购员 -> A: 选择订货货品()
activate A
A -> B:接收客户信息()
activate B
A -> B:接收货品信息()
activate B
B --> A: 显示货品信息()
deactivate B
B -> C: 创建客户()<
activate C
B -> D: 取货品信息()
activate D
D --> B: 货品信息()
activate D
B -> E: 创建订单()<
activate E
@enduml