PlantUML类图
PlantUML用下面的符号来表示类之间的关系:类之间的关系
泛化, Generalization:
关联, Association:
组合, Composition: *--
聚合, Aggregation: o--
实现, Realization:
依赖, Dependency: <..>
以上是常见的六种关系, --可以替换成 ..就可以得到虚线。另外,其中的符号是可以改变方向的,例如: 表示左边的类泛化右边的类。
例如,下面的是 --:
@startuml
Class01
Class03
Class05 *-- Class06:组合
Class07 o-- Class08:聚合
Class09 -- Class10
@enduml
生成的类图如下:
--可以替换成 ..,对应的虚线:
@startuml
Class11
Class13 <.. class14:>
Class15 *.. Class16
Class17 o.. Class18
Class19 .. Class20
@enduml
生成的类图如下:
关系上的标签
可以在关系上添加标签,只需要在文本后面添加冒号和标签名称即可。可以在关联的两边使用双引号。例如:
@startuml
Class01 "1" *-- "many" Class02 : contains
Class03 o-- Class04 : aggregation
Class05 --> "1" Class06
@enduml
生成的类图如下:
你可以在关系上使用 表名两个类之间的关系,例如:
@startuml
class Car
Driver - Car : drives >
Car *- Wheel : have 4 >
Car -- Person : < owns
@enduml
生成的类图如下:
上面的类图意思是:
Driver 驾驶 Car
Car 有4个 Wheel
Person 拥有 Car
添加方法
在类名后面添加冒号可以添加方法和方法的参数,例如:
@startuml
Object
Object : equals()
ArrayList : Object[] elementData
ArrayList : size()
@enduml
生成的类图如下:
也可以使用{}来定义所有的字段及字段和方法,例如:
@startuml
class Dummy {
String data
void methods()
}
class Flight {
flightNumber : Integer
departureTime : Date
}
@enduml
生成的类图如下:
定义可见性
以下符号定义字段或者方法的可见性:
-: private
#: protected
~: package private
+: public
例如:
@startuml
class Dummy {
-field1
#field2
~method1()
+method2()
}
@enduml
你可以使用skinparam classAttributeIconSize 0关掉icon的显示:
@startuml
skinparam classAttributeIconSize 0
class Dummy {
-field1
#field2
~method1()
+method2()
}
@enduml
抽象和静态
你可以使用 {static}或者 {abstract}来修饰字段或者方法,修饰符需要在行的开头或者末尾使用。你也可以使用 {classifier}代替 {static}。
@startuml
class Dummy {
{static} String id
{classifier} String name
{abstract} void method