对象图是一种图形表示法,展示对象及其在特定时刻的关系。它提供了系统结构的快照,捕捉了存在的实例及其关联的静态视图。
PlantUML提供了一种使用纯文本创建对象图的简单直观的方法。其用户友好的语法允许快速创建图表,而无需复杂的图形用户界面工具。此外,
PlantUML 论坛还为用户提供了一个讨论、分享和寻求帮助的平台,从而培养了一个协作社区。选择 PlantUML,用户既能受益于基于 markdown 的高效图表制作,又能得到活跃社区的支持。
使用关键字
object
定义实例。
🎉 Copied!
|
@startuml
object 对象1
object "第 2 个对象" as o2
@enduml
|
WARNING
This translation need to be updated. WARNING
对象之间的关系是用以下符号定义的。
类型
|
符号
|
图像
|
延伸
|
<|--
|
|
组成
|
*--
|
|
聚合
|
o--
|
|
可以用
..
替换
--
,以获得虚线。
知道了这些规则,就有可能画出下面的图画。
可以在关系上添加一个标签,使用
:
,后面是标签的文字。
对于cardinality,你可以在关系的每一侧使用双引号
""
,
。
🎉 Copied!
|
@startuml
object Object01
object Object02
object Object03
object Object04
object Object05
object Object06
object Object07
object Object08
Object01 <|-- Object02
Object03 *-- Object04
Object05 o-- "4" Object06
Object07 .. Object08 : some labels
@enduml
|
🎉 Copied!
|
@startuml
object o1
object o2
diamond dia
object o3
o1 --> dia
o2 --> dia
dia --> o3
@enduml
|
用冒号加属性名的形式声明属性。
🎉 Copied!
|
@startuml
object user
user : name = "Dummy"
user : id = 123
@enduml
|
也可以用大括号批量声明属性。
🎉 Copied!
|
@startuml
object user {
name = "Dummy"
id = 123
}
@enduml
|
You can define a map table or
associative array, with
map
keyword and
=>
separator.
🎉 Copied!
|
@startuml
map CapitalCity {
UK => London
USA => Washington
Germany => Berlin
}
@enduml
|
🎉 Copied!
|
@startuml
map "Map **Contry => CapitalCity**" as CC {
UK => London
USA => Washington
Germany => Berlin
}
@enduml
|
🎉 Copied!
|
@startuml
map "map: Map<Integer, String>" as users {
1 => Alice
2 => Bob
3 => Charlie
}
@enduml
|
And add link with object.
🎉 Copied!
|
@startuml
object London
map CapitalCity {
UK *-> London
USA => Washington
Germany => Berlin
}
@enduml
|
🎉 Copied!
|
@startuml
object London
object Washington
object Berlin
object NewYork
map CapitalCity {
UK *-> London
USA *--> Washington
Germany *---> Berlin
}
NewYork --> CapitalCity::USA
@enduml
|
[Ref. #307]
🎉 Copied!
|
@startuml
package foo {
object baz
}
package bar {
map A {
b *-> foo.baz
c =>
}
}
A::c --> foo
@enduml
|
[Ref. QA-12934]
🎉 Copied!
|
@startuml
object Foo
map Bar {
abc=>
def=>
}
object Baz
Bar::abc --> Baz : Label one
Foo --> Bar::def : Label two
@enduml
|
[Ref. #307]
你可以使用
map table
,以制作
程序(或项目)评估和审查技术(PERT)图。
🎉 Copied!
|
@startuml PERT
left to right direction
' Horizontal lines: -->, <--, <-->
' Vertical lines: ->, <-, <->
title PERT: Project Name
map Kick.Off {
}
map task.1 {
Start => End
}
map task.2 {
Start => End
}
map task.3 {
Start => End
}
map task.4 {
Start => End
}
map task.5 {
Start => End
}
Kick.Off --> task.1 : Label 1
Kick.Off --> task.2 : Label 2
Kick.Off --> task.3 : Label 3
task.1 --> task.4
task.2 --> task.4
task.3 --> task.4
task.4 --> task.5 : Label 4
@enduml
|
[Ref.QA-12337]
Simple example
🎉 Copied!
|
@startuml
class Class
object Object
json JSON {
"fruit":"Apple",
"size":"Large",
"color": ["Red", "Green"]
}
@enduml
|
[Ref. QA-15481]
For another example, see on
JSON page.