一。类符号表示
- 类成员的可见性
公有成员:使用“+”符号表示,例如 +属性名:类型 或 +方法名():返回类型
私有成员:使用“-”符号表示,例如 -属性名:类型 或 -方法名():返回类型
受保护成员:使用“#”符号表示,例如 #方法名():返回类型
包内可见成员:使用“~”符号表示,例如 \~方法名(param:类型):返回类型
- 类与类之间的关系
类与类之间的关系表示方法:
继承关系:使用“--|--”表示,例如 父类<|--子类
实现关系:使用“..|..”表示,例如 接口<|..实现类
聚合关系:使用“o--”表示,例如 类A o-- 类C
组合关系:使用“*--”表示,例如 类A *-- 类D
关联关系【调用关系】:使用“--”表示,例如 类A <-- 类B
二。特殊操作
- plantuml包含另外的plantuml内信息
common.plantuml
@startuml class CommonClass { +field1 +method1() } @enduml
main.plantuml
@startuml !include common.plantuml class MainClass { +field2 +method2() } MainClass -- CommonClass : uses @enduml '!include (可以加相对路径)/common.plantuml
三。循环流程图
1. 使用repeat-until
循环
@startuml
repeat : 重复执行以下步骤;
: 执行步骤1;
: 执行步骤2;
: 执行步骤3;
until (条件) is (满足);
@enduml
2. 使用while
循环
@startuml
start
: 执行步骤1;
while (条件) is (满足):
: 执行步骤2;
: 执行步骤3;
endwhile (条件不再满足);
stop
@enduml
3. 结合使用if-else
和循环
@startuml
start
repeat : 重复执行以下步骤;
: 执行步骤1;
if (条件) then (是)
: 执行步骤2A;
else (否)
: 执行步骤2B;
endif
until (最终条件) is (满足);
stop
@enduml
4. 使用fork
和join
来并行处理循环中的任务(高级用法)
@startuml
start
repeat : 重复执行以下步骤;
fork
: 任务1;
end fork
fork again
: 任务2;
end fork again
join
until (条件) is (满足);
stop
@enduml
5. 分支和合并(使用partition
)
@startuml
start
partition "循环" {
repeat : 重复执行以下步骤;
: 步骤1;
partition "分支" {
if (条件) then (是)
: 步骤2A;
else (否)
: 步骤2B;
endif
}
until (条件) is (满足);
}
stop
@enduml
四。排版
1.default
箭头向左时,被指向对象在上; 箭头向右时,被指向对象在下。
2.up
使用up时,被指向对象在上。
3.down
使用down时,被指向对象在下。
4.left
使用left时,被指向对象在左。
5.right
使用right时,被指向对象在右。
××××××××××××××××××××××
User -up-> Config : reads
Service -down-> Database : connects
使用-up->、-down->等调整箭头方向,避免连线交叉。
6. 包 【package 】
@startuml
scale 750 width
package foo1 <<Node>> {
class Class1
}
package foo2 <<Rect>> {
class Class2
}
package foo3 <<Folder>> {
class Class3
}
package foo4 <<Frame>> {
class Class4
}
package foo5 <<Cloud>> {
class Class5
}
package foo6 <<Database>> {
class Class6
}
五。其他操作
-
修改线条/箭头颜色
@startuml Bob -[#red]> Alice : hello Alice -[#0000FF]->Bob : ok @enduml
-
颜色与样式定义
class Order #FFD700 { +total: double } User --> Order : places #green
-
修改字体颜色和线条
<b>内容:加粗文本 <u> 或 <u:#AAAAAA> 或 <u:colorName> 用来加下划线 <i> 斜体 <s> 或 <s:#AAAAAA> 或 <s:colorName> 用来加删除线 <w> 或 <w:#AAAAAA> 或 <w:colorName> 用来加波浪线 <color:#AAAAAA> 或 <color:colorName> 用来设置文本颜色 <back:#AAAAAA> 或 <back:colorName> 用来设置背景色 <size:nn> 设置字体大小
-
添加图片
<img src="file"> 或 <img:file> 用来添加图片,图片文件必须 是可以访问得到才行。 <img src="http://url"> 或 <img:http://url> 用来添加一个互 联网图片,同样的图片地址必须是可用的才行。
六。特定语义
-
用例图
'从左往右画用例图 left to right direction '这个作用将线条模糊和扭曲化 skinparam handwritten true skinparam packageStyle rectangle actor customer '下面的这些定 义了角色和用例的一些颜色设置 skinparam usecase { BackgroundColor DarkSeaGreen BorderColor DarkSlateGray ArrowColor Olive ActorBorderColor black ActorFontName Courier }
-
顺序图
title CRM顺序图 '一些外观设置 skinparam sequenceArrowThickness 2 skinparam roundcorner 20 skinparam maxmessagesize 60 skinparam backgroundColor #EEEBDC skinparam handwritten true skinparam sequence { ArrowColor black ActorBorderColor orange LifeLineBorderColor black LifeLineBackgroundColor DarkSeaGreen ParticipantBorderColor DarkSeaGreen ParticipantBackgroundColor default ParticipantFontName Impact ParticipantFontSize 17 ParticipantFontColor #DarkSeaGreen ActorFontColor black ActorFontSize 17 ActorFontName Aapex }
3. Box框
box "运行逻辑" #LightGreen
participant "run" as run
participant "logic" as logic
participant "any" as any
endbox