• PlantUML基础使用教程


    环境搭建

    IDEA插件下载

    打开IEDA系列IDE,从FIle–>Settings–>Plugins–>Marketplace 进入到插件下载界面,搜索PlantUML,安装PlantUML IntegrationPlantUML Parser两个插件,并重启IDE

    安装和配置Graphviz

    进入官网Download | Graphviz下载操作系统对应的安装包,安装后打开settings页面,找到PlantUML配置页面,并在Graphviz dot executable中输入dot可执行文件的绝对路径。

    下图为Mac系统使用homebrew安装graphviz所对应的文件路径:
    在这里插入图片描述
    至此,环境搭建完毕,下面演示如何利用PlantUML插件来生成uml文件。

    第一个puml文件

    在项目中找到想要生成uml文件的class,鼠标右键,找到:

    Light         Dark

    输入文件名后点击确认即可生成一个puml文件。

    第二个puml文件

    仅生成一个class文件的uml图肯定是不能满足需求的,那如何生成多个class的uml图呢?这里PlantUML并不能帮我们自动挑选出哪些类,而是需要我们自己先根据代码的关系和调用链等在脑子里面确认好需要哪些class,然后按住ctrl键依次选中这些class文件,最后鼠标右键同样点击PlantUML Parser即可。

    当然生成uml图可能并不完美,需要微调,此时就需要我们稍微了解一下相关的语法了。

    语法简介

    • 关系:
    继承关系实现关系依赖关系关联关系聚合关系组合关系
    方法参数引用属性关联多属性关联单属性关联
    三角实线三角虚线箭头虚线箭头实线空棱形实线箭头实棱形实线箭头
    <|– <|…<…<–o–*–
    • 类型:
    接口抽象类内部类
    classinterfaceabstract+..

    示例:

    @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
    
    
    
    • 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
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46

    参考资料

  • 相关阅读:
    二、进程管理(五)死锁
    压力测试+接口测试
    Java 不同接口中含有相同签名方法
    PHP连接达梦数据库DM8(Window)
    STL常用容器——deque容器的使用
    语义分割模型------unet unet++
    【论文笔记】IEEE | 一种新卷积 DSConv: Efficient Convolution Operator
    linux——信号
    数据挖掘面试经总结【私人版,仅供参考】
    ROS(1)话题模型
  • 原文地址:https://blog.csdn.net/csfchh/article/details/134411011