使用PlantUML画类图
# 使用PlantUML画类图
PlantUML是一个可以让你快速编写UML图的组件。
# 安装和使用
vscode中安装PlantUML插件。
如果想绘制除时序图和活动图以外的图, 就需要安装Graphviz软件。
Graphviz下载 : graphviz-dot (opens new window)
# 类的六大关系
关系类型 | 符号 | 绘图 | 说明 |
---|---|---|---|
依赖 | <.. | use a | |
关联 | <-- | has a | |
继承(泛化) | <|-- | extern | |
实现 | <|.. | implements | |
组合 | *-- | 二者之间是整体和部分的密切关系,部分的生命周期不能超越整体,或者说不能脱离整体而存在。例如电脑和cpu的关系。 | |
聚合 | o-- | 二者之间是整体和部分的弱关系,整体和部分可以分开,部分的生命周期可以超越整体。例如雁群和大雁的关系、学校和学生之间的关系。 |
# 案例
@startuml
class person
class student
{
# String name
# int age
- String id
}
class teacher
class course
class computer
class cpu
class harddisk
class water
interface human
{
+eat()
+drink()
+sleep()
+work()
}
human <|.. person:实现
water <.. human:依赖
person <|-- student:继承
person <|-- teacher:继承
student *-- course:聚合
teacher *-- course:聚合
computer <-- student:关联
cpu o-- computer:组合
harddisk o-- computer:组合
note left of computer:这是一个注释
@enduml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# 注释
@startuml
class Object << general >>
Object <|--- ArrayList
note top of Object : In java, every class\nextends this one.
note "This is a floating note" as N1
note "This note is connected\nto several objects." as N2
Object .. N2
N2 .. ArrayList
class Foo
note left: On last defined class
@enduml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 参考资料
github: plantuml/plantuml: Generate diagrams from textual description (github.com) (opens new window)
官方PDF文档: PlantUML Language Reference Guide (opens new window)
编辑 (opens new window)
上次更新: 2023/03/31, 22:34:04
- 01
- Linux系统移植(五)--- 制作、烧录镜像并启动Linux02-05
- 03
- Linux系统移植(三)--- Linux kernel移植02-05