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

在这里插入图片描述

描述元素之间的关系

@startuml

abstract 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

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

@startuml

abstract 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

在这里插入图片描述

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

@startuml

class Animal{
String name
int num
'静态变量
{static} boolean isFly 

void run()
'抽象方法
{abstract}int getNUm()

@enduml

在这里插入图片描述

添加注释

@startuml

class Cat{
int age
void run()
void setName(String name)
}
'注释变量
note left of Cat::age
我今年十八岁
end note

note left of Cat::run()
我会跑步哟
end note

note left of Cat::"setName(String name)"
你可以叫我猫猫哟
end note

class Bird{
}
'写在哪个元素下方,就是对哪个元素做注释
'选择left/bottom/left/right 分别是在 上下左右 进行备注
note left
这是一个小鸟类
end note

note "我和其他元素没啥关系,是总体的总结" as note1

note "我们都是动物" as note2

Cat .. note2
note2 .. Bird

@enduml

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Docker中部署Redis集群与部署微服务项目的详细过程

目录 一、使用Docker部署的好处二、Docker 与 Kubernetes 对比三、Redis集群部署实战四、Spring Boot项目 打包镜像?小结 一、使用Docker部署的好处 Docker的好处在于:在不同实例上运行相同的容器 Docker的五大优点: 持续部署与测试、多云服务平台支…

微信小程序开发与应用——字体样式设置

要求:设置字体样式。 1、打开微信开发者工具,创建一个小程序,如下: 2、设置小程序的项目名称和路径,并选择开发语言为JavaScript,如下: 3、小程序的主体部分由三个文件组成,且都要…

VS2019+Qt5.15 在线显示百度地图

1.Qt5.15编译程序需要选择mscv2019 Release版本 2.需要到百度地图开发平台注册并获取到开发者key 3.显示地图是JS与Qt的交互过程&#xff0c;显示地图的html文件&#xff1a; <!DOCTYPE html> <html><head> <meta name"viewport" content&q…

基于ubuntu的驱动开发

一般的linux驱动开发都是基于交叉编译来进行的&#xff0c;本文尝试着从另一个角度&#xff1a;基于ubuntu的本地驱动开发来学习一下驱动的开发 一、驱动的开发与编译 1.1、编写驱动文件 #include <linux/init.h> #include <linux/module.h> static int hello_i…

深入理解Linux网络——内核是如何接收到网络包的

文章目录 一、相关实际问题二、数据是如何从网卡到协议栈的1、Linux网络收包总览2、Linux启动1&#xff09;创建ksotfirqd内核线程2&#xff09;网络子系统初始化3&#xff09;协议栈注册4&#xff09;网卡驱动初始化5&#xff09;网卡启动 3、迎接数据的到来1&#xff09;硬中…

Gradio库中的Model3D模块:实时上传和展示3D模型

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

结合具体场景举例说明chatgpt预训练模型中Tokenization的原理

假设我们有一个场景&#xff0c;Alice想向Chatbot询问一部电影的推荐。她发送了一条消息&#xff1a;“你好&#xff0c;能给我推荐一部好看的电影吗&#xff1f;” 在这个场景中&#xff0c;Chatbot使用了ChatGPT预训练模型。首先&#xff0c;Chatbot需要对Alice的消息进行Tok…

OpenCV读取一张8位无符号三通道图像并显示

#include <iostream> #include <opencv2/imgcodecs.hpp> #include <opencv2/opencv.hpp> #include

c++编写网络爬虫

c爬虫项目 实现图形化界面UI 安装easyX&#xff08;需要用的graphisc.h&#xff09; 我之前的文章详细写到过如何安装。是这篇文章提到的&#xff1a;传送门 easyx官网 创建图形化界面 #define WINDOW_WIDTH 482 #define WINDOW_HEIGHT 300 void initUI() {initgraph(WINDO…

SwiftUI的优缺点

2019年WWDC大会上&#xff0c;苹果在压轴环节向大众宣布了基于Swift语言构建的全新UI框架——SwiftUI&#xff0c;开发者可通过它快速为所有的Apple平台创建美观、动态的应用程序。推荐大量使用struct代替类。 SwiftUI 就是⼀种声明式的构建界面的用户接口工具包。 SwiftUI使用…

机器学习与深度学习——自定义函数进行线性回归模型

机器学习与深度学习——自定义函数进行线性回归模型 目的与要求 1、通过自定义函数进行线性回归模型对boston数据集前两个维度的数据进行模型训练并画出SSE和Epoch曲线图&#xff0c;画出真实值和预测值的散点图&#xff0c;最后进行二维和三维度可视化展示数据区域。 2、通过…

SpringBoot + Vue前后端分离项目实战 || 五:用户管理功能后续

系列文章&#xff1a; SpringBoot Vue前后端分离项目实战 || 一&#xff1a;Vue前端设计 SpringBoot Vue前后端分离项目实战 || 二&#xff1a;Spring Boot后端与数据库连接 SpringBoot Vue前后端分离项目实战 || 三&#xff1a;Spring Boot后端与Vue前端连接 SpringBoot V…

企业内部安全:利用 ADAudit Plus 管理与加强安全审计

在现代数字化时代&#xff0c;企业面临着日益复杂和不断变化的安全威胁。为了保护敏感数据、遵守合规要求以及防范内部威胁&#xff0c;企业需要有效的安全审计解决方案。ADAudit Plus 是一款强大而全面的安全审计工具&#xff0c;可以帮助企业管理和加强内部安全。 ADAudit Pl…

Jenkins持续集成,在Linux中安装最新版Jenkins(详细)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 去年从6月28日发布…

git学习1

打标签 与其他版本控制系统&#xff08;VCS&#xff09;一样&#xff0c;Git 可以给仓库历史中的某一个提交打上标签&#xff0c;以示重要。 比较有代表性的是人们会使用这个功能来标记发布结点&#xff08; v1.0 、 v2.0 等等&#xff09;。 列出标签 在 Git 中列出已有的…

SpringCloud:微服务技术

一、认识微服务&#xff1a; 首先&#xff0c;微服务架构不等于SpringCloud&#xff0c;微服务架构是一种经过良好架构设计的分布式架构方案&#xff0c; &#xff0c;它将应用构建成一系列按业务领域划分模块的&#xff0c;小的自治服务&#xff0c;并解决服务拆分所产生的各种…

github搜索技巧笔记

一、了解 GitHub Watch按钮 Watch可以理解为关注的意思&#xff0c;默认情况下是Not watching&#xff0c;当选择Watch后&#xff0c;你会收到这个GitHub项目的所有动态。比如&#xff1a;有人发起pull request或者issue等。接收动态方式包括个人通知中心或者邮箱。 如果某个…

GIT版本控制常规性操作演示汇总

文章目录 GIT基本操作GIT配置个人信息配置&#xff1a;GIT查看个人信息配置&#xff1a;GIT的三大区域GIT回滚&#xff1a;git resetGIT恢复日志&#xff1a;git reflogGIT三大区域转换GIT新建分支GIT合并分支GIT删除分支码云上创建项目GIT变基&#xff1a;git rebase合并提交记…

设计模式- 一、设计原则-1

一、设计原则 当涉及到软件设计和开发原则时&#xff0c;有一些常见的原则和准则可以帮助我们编写高质量、可维护和可扩展的代码。以下是其中一些重要的原则和准则&#xff1a; SOLID原则&#xff1a; 单一职责原则&#xff08;Single Responsibility Principle&#xff0c;SRP…

举例说明ChatGPT模型是怎么进行无监督学习的

ChatGPT&#xff0c;也称为生成式预训练Transformer&#xff08;GPT&#xff09;&#xff0c;是一种基于Transformer架构的自然语言处理模型。虽然在实际应用中&#xff0c;它主要用于有监督学习任务&#xff0c;但在训练初期&#xff0c;它会经历无监督学习阶段。以下是一个简…