IDEA使用插件绘制UML类图+PlantUML语法讲解

安装

IDEA安装插件

在这里插入图片描述
在这里插入图片描述
安装完插件记得重启一下IDEA

安装Graphviz(亲测win11可以使用)

安装完插件之后,还需要安装Graphviz才可以渲染图形。
Graphviz安装包下载地址
在这里插入图片描述
安装过程很简单,直接双击或者管理员身份运行即可,注意下面两个操作,其他都是接受、下一步即可
【操作一:选择是否配置环境变量】
在这里插入图片描述
【操作二:选择好软件要安装的路径,建议安装在C盘以外的其他盘】

【验证Graphviz是否安装成功】

dot -version

在这里插入图片描述

绘制

步骤一:创建UML文件

在这里插入图片描述
在这里插入图片描述

绘制语法

令人伤心的是,使用PlantUML并不能直接采用拖动元素的方式来绘制UML类图,但是提供了写代码操控的方式,该方式不仅可以更好地装逼,还可以自动帮我们生成合理的布局。只要掌握了语法,写代码操控类图的方式是非常高效的,骚年们,快学起来,不要被劝退了

声明元素

@startuml'声明抽象类
abstract class AbstractList
'声明接口
interface List
'声明注解
annotation Haha
'声明类
class Shape
'声明枚举类
enum TimeUnit {
DAYS
HOURS
MINUTES
}
'给类定义方法和成员变量
class ArrayList {
'定义变量
Object[] elementData
'定义方法
size()
}@enduml

在这里插入图片描述

描述元素之间的关系

@startumlabstract class A
interface B
class C
class D
class E
class F
class G'依赖关系:C使用D
C ..> D'关联关系:C关联D
C -- E'继承关系:F继承D
F --|> D'实现关系:D实现B接口
D ..|> B'聚合关系:G聚合E
G --o E'组合关系:D组合E
D --* E@enduml

在这里插入图片描述
如果觉得关系不太明了,可以关系上面添加注释

@startumlabstract class A
interface B
class C
class D
class E
class F
class G'依赖关系:C使用D
C ..> D :使用'关联关系:C关联D
C -- E :关联'继承关系:F继承D
F --|> D :继承'实现关系:D实现B接口
D ..|> B :实现'聚合关系:G聚合E
G --o E :聚合'组合关系:D组合E
D --* E :组合@enduml

在这里插入图片描述

给元素添加成员变量和方法

@startumlclass Animal{
String name
int num
'静态变量
{static} boolean isFly void run()
'抽象方法
{abstract}int getNUm()@enduml

在这里插入图片描述

添加注释

@startumlclass Cat{
int age
void run()
void setName(String name)
}
'注释变量
note left of Cat::age
我今年十八岁
end notenote left of Cat::run()
我会跑步哟
end notenote left of Cat::"setName(String name)"
你可以叫我猫猫哟
end noteclass Bird{
}
'写在哪个元素下方,就是对哪个元素做注释
'选择left/bottom/left/right 分别是在 上下左右 进行备注
note left
这是一个小鸟类
end notenote "我和其他元素没啥关系,是总体的总结" as note1note "我们都是动物" as note2Cat .. note2
note2 .. Bird@enduml

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/22499.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql数据库的定时备份脚本(docker环境和非docker环境)

一、非docker安装的MySQL MySQL作为一种常用的数据库管理系统,拥有着众多的优秀特性,如高性能、高可靠性、高可扩展性等。然而,在数据备份上,也需要我们进行一定的处理,这样才能保证数据的安全性。因此,在这里我们将介绍如何定时备份MySQL数据库。 我们可以通过MySQL自…

5G时代的材料新宠——液晶高分子聚合物

液晶高分子聚合物时80年代初期发展起来的一种新型高性能工程塑料,英文名为:Liquid Crystal Polymer 简称为LCP。 聚合方法以熔融缩聚为主,全芳香族LCP多辅以固相缩聚以制得高分子量产品。非全芳香族LCP常采用一步或二步熔融聚合制取产品。近年…

IP-GUARD授权库勾选“不跟踪另存为”的效果

容灾时间过期如何申请延长? 有以下几种方式可以在已经超过容灾时间后,让客户端正常使用加密: 1、直接从控制台设置好容灾时间或者长期离线授权,右键客户端导出策略,然后从客户端c:\windows,调出policyimporttool.exe,导入策略即可。 2、直接在控制台设置好长期离线授权…

Java虚拟机(JVM)介绍

JVM是什么 JVM是Java Virtual Machine的缩写。它是一种基于计算设备的规范,是一台虚拟机,即虚构的计算机。 JVM屏蔽了具体操作系统平台的信息(显然,就像是我们在电脑上开了个虚拟机一样),当然,J…

若依官方前端手册 小笔记

提供确认窗体信息 this.$modal.confirm(确认信息).then(function() {... }).then(() > {... }).catch(() > {}); 提供遮罩层信息 // 打开遮罩层 this.$modal.loading("正在导出数据,请稍后...");// 关闭遮罩层 this.$modal.closeLoading(); 验证…

ViDeNN: Deep Blind Video Denoising

ViDeNN: Deep Blind Video Denoising 摘要 We propose ViDeNN: a CNN for Video Denoising without prior knowledge on the noise distribution (blind denoising). The CNN architecture uses a combination of spatial and temporal filtering, learning to spatially deno…

记录stm32c8t6使用TIM4_CH1、TIM4_CH2输出PWM波控制编码电机出现的问题

由于之前是使用PB9、PB7引脚即TIM4_ch3\TIM4_ch4,由于项目更改为c8t6的PB、PB7引脚(TIM4_ch3\TIM4_ch4) 改为配置后发现只有一边的轮子可以转到,明明配置没什么问题,编译也没有报错,最后将pwm的调制模式更改…

git bash设置字体大小

背景 git bash默认字体太小了,每次读信息都要伸头盯着屏幕,很不自在,不符合我的风格,so let’s do it! 修改前的git bash: 正确的打开方式 1、在任意目录下,右键选择“Git Bash Here”&…

【UniApp开发小程序】请求包创建+登录功能实现

文章目录 请求包创建创建文件夹请求工具request.js 登录功能实现请求方法页面涉及知识点错误提示前端校验设置token到客户端缓存中路由跳转 请求包创建 小程序的数据需要向后端发请求进行获取,为了简化后续的开发,需要创建一个包专门存放所有发请求的js…

MySQL环境配置

MySQL在centos7环境安装 一.卸载不要的环境二.获取mysql官方yum源三.安装mysql服务四.mysql登陆五.设置配置文件my.cnf六.设置开机启动【可以不设】七.常见问题 安装与卸载中,⽤⼾全部切换成为root,⼀旦安装,普通⽤⼾也能使⽤。 一.卸载不要…

LVGL开发:配置模拟器学习LVGL V8.3

文章目录 模拟器配置常用控件学习基本知识WidgetEvents 输入设备ImagesScreen 参考 模拟器配置 LVGL支持多种IDE下配置模拟器: 在WINDOWS下面,大家最常使用的是VS2019,为了和大家保持一致,这里也使用VS2019进行配置。 首先&…

[Android 13]Binder系列--获取服务

获取服务 hongxi.zhu 2023-7-8 一、客户端发起获取服务 以SurfaceFlinger进程中获取InputFlinger服务为例 frameworks/native/services/surfaceflinger/SurfaceFlinger.cpp sp<IBinder> input(defaultServiceManager()->getService(String16("inputflinger"…