PlantUML是一个UML的工具,使用类似HTML的标记性语言,编写代码自动生成UML图。它会自动排版成完美的样式,并且功能很完善,本文主要简单介绍画简单的类图。
1. 使用准备
1.1 示例
PlantUML提供了在线服务。下面是一个简单示例:
@startuml
Class01 <|-- Class02
Class03 *-- Class04
Class05 o-- Class06
Class07 .. Class08
Class09 -- Class10
@enduml
效果:
11.png
1.2 安装
官方指南是给出plantuml.jar,在命令行中执行。不过,PlantUML有跟多插件,本文都是在IDEA中使用的。
- Java
- Graphviz
- IDEA插件:PlantUML integration
2. 使用PlautUML画类图
官方的类图使用文档已经很清晰、详细,不做过多介绍。
关于UML类图与类的关系不了解的,可以参考文章,这篇文章中的图真的很棒。
3. 示例效果
按照第2节的博文画了一个类似的类图,先看效果:
22.png
代码:
@startuml
动物 ..> 空气 : 依赖
动物 ..> 水
鸟 --|> 动物 : 继承
大雁 ..|> 飞翔 : 实现接口
大雁 --|> 鸟
大雁 "n" --o "1" 雁群 : 聚合
鸭 --|> 鸟
唐老鸭 -- 鸭
翅膀 --* 鸟 : 组合 >
企鹅 --> 气候 : 单向关联
企鹅 --|> 鸟
class 动物 {
- {static}有生命
# 重量
+ 年龄
+ {abstract}新陈代谢(空气 水)
+ 繁殖()
+ 繁殖(变量1)
}
note right: 动物的注释
note left of 动物::重量
动物的重量的注释
end note
note left of 动物::"繁殖()"
同名方法的注释
end note
note right of 动物::"繁殖(变量1)"
同名方法的注释
end note
class 空气
class 水
class 鸟 {
+ 翅膀
+ 下蛋()
}
class 翅膀 {
}
interface 飞翔 {
+ 飞()
}
class 大雁 {
+ 下蛋()
+ 飞翔()
}
note top of 大雁
大雁的注释
end note
class 雁群 {
+ V型飞行()
+ 一型飞行()
}
class 鸭 {
+ 下蛋()
}
class 唐老鸭 {
- 讲话()
# 走路()
}
class 企鹅 {
+ 下蛋()
}
enum 气候 {
}
note as N1
这是一个注释,可以像Markdown一样贴图和
HTML一样<u>下划线</u>
end note
@enduml