环境搭建
IDEA插件下载
打开IEDA系列IDE,从FIle-->Settings-->Plugins-->Marketplace 进入到插件下载界面,搜索PlantUML,安装PlantUML Integration
和PlantUML Parser
两个插件,并重启IDE
安装和配置Graphviz
进入官网Download | Graphviz下载操作系统对应的安装包,安装后打开settings页面,找到PlantUML配置页面,并在Graphviz dot executable
中输入dot
可执行文件的绝对路径。
下图为Mac系统使用homebrew安装graphviz所对应的文件路径:
至此,环境搭建完毕,下面演示如何利用PlantUML插件来生成uml文件。
第一个puml文件
在项目中找到想要生成uml文件的class,鼠标右键,找到:
输入文件名后点击确认即可生成一个puml文件。
第二个puml文件
仅生成一个class文件的uml图肯定是不能满足需求的,那如何生成多个class的uml图呢?这里PlantUML并不能帮我们自动挑选出哪些类,而是需要我们自己先根据代码的关系和调用链等在脑子里面确认好需要哪些class,然后按住ctrl键依次选中这些class文件,最后鼠标右键同样点击PlantUML Parser
即可。
当然生成uml图可能并不完美,需要微调,此时就需要我们稍微了解一下相关的语法了。
语法简介
- 关系:
继承关系 | 实现关系 | 依赖关系 | 关联关系 | 聚合关系 | 组合关系 |
---|---|---|---|---|---|
方法参数引用 | 属性关联 | 多属性关联 | 单属性关联 | ||
三角实线 | 三角虚线 | 箭头虚线 | 箭头实线 | 空棱形实线箭头 | 实棱形实线箭头 |
`< | -- ` | `< | ...` | <... |
<-- |
- 类型:
类 | 接口 | 抽象类 | 内部类 |
---|---|---|---|
class | interface | abstract | +.. |
示例:
@startuml
class ImageLoader{
loadImage(ImageInfo)
}
class ImageInfo{
}
ImageInfo <.. ImageLoader :依赖关系
class Window {
-WindowManager mWindowManager : 成员变量
}
class WindowManager
WindowManager <-- Window:关联关系
class Company
class Department
Company o-- Department:聚合关系
class Bird
class Wing
Bird *-- Wing:组合关系
abstract class Factory
class PhoneFactory
class CarFactory
Factory <|-- PhoneFactory:泛化关系
Factory <|-- CarFactory:也就是继承关系
interface IColorDraw{
~ draw() : 抽象方法
}
class RedColorDraw{
+ draw() :具体方法
}
class BlueColorDraw{
draw()
}
IColorDraw <|.. RedColorDraw:实现关系
IColorDraw <|.. BlueColorDraw:实现某个接口
@enduml