当前位置: 首页 > news >正文

1 分钟掌握 PlantUML,快速绘制 UML 类图!

  • 引言
  • PlantUML 代码语法快速上手
  • 1.使用 PlantUML 在线工具(1 分钟)
  • 2.使用 IntelliJ IDEA + PlantUML 插件(3 分钟)
  • 3. 使用 PlantUML JAR 包(5 分钟)
  • 总结

引言

在项目开发和技术学习过程中,我们经常需要理解类之间的 继承、实现、关联 关系。UML 类图 直观地展示了这些关系,使代码结构更加清晰。

本篇文章将介绍 三种快速绘制 UML 类图的方法,不超过 10 分钟 即可上手:

  • 1 分钟掌握 PlantUML 在线工具
  • 3 分钟学会 IDEA 内置插件绘图
  • 5 分钟使用 PlantUML JAR 包生成 UML

无论你是 新手还是资深开发者,都能通过这些方法 轻松绘制 UML 类图,助力项目开发和技术理解。

PlantUML 代码语法快速上手

使用 PlantUML 绘制 UML 类图的核心语法非常简单,只需遵循以下步骤:

  1. 代码块 必须以 @startuml 开头,以 @enduml 结尾。
  2. 定义类和接口。
  3. 建立类与类之间的关系,包括:
    • 继承: A <|-- B(表示 B 继承 A)
    • 接口实现: A <|-- B(表示 B 继承 A)
    • 组合: A *-- B(表示 A 组合 B)

你可以直接复制下面的代码,快速创建 UML 类图:

@startuml
' 定义接口
interface Serializable
interface Lock

' 定义类
class AbstractQueuedSynchronizer
class ConditionObject
class Node
class ReentrantLock
class Sync
class NonfairSync
class FairSync

' 继承关系
Serializable <|.. AbstractQueuedSynchronizer
Serializable <|.. ConditionObject
Serializable <|.. ReentrantLock
Lock <|.. ReentrantLock
' 实现关系
Sync <|-- NonfairSync
Sync <|-- FairSync

' 组合关系
ReentrantLock *-- Sync
ReentrantLock *-- NonfairSync
ReentrantLock *-- FairSync
AbstractQueuedSynchronizer *-- ConditionObject
AbstractQueuedSynchronizer *-- Node
@enduml

1.使用 PlantUML 在线工具(1 分钟)

步骤一: 访问网址:https://www.planttext.com/,进入plantUML在线界面。
步骤二: 编写构建类图的代码。
步骤三: 点击Refresh按钮,即可在代码右侧看到画出来的UML类图。
在这里插入图片描述

2.使用 IntelliJ IDEA + PlantUML 插件(3 分钟)

步骤一: 打开File->Setting->Plugins,找到PlantUML Integration插件,下载安装,然后重启IDEA。
在这里插入图片描述

步骤二: 在自定义目录下右键即可创建 .puml 后缀的文件,在该文件中编写构建类图的代码。
步骤三: 即可在右侧展现出来对应的uml类图。
在这里插入图片描述

3. 使用 PlantUML JAR 包(5 分钟)

步骤一: 之前还需要下载一个Graphviz,并把它配置到环境变量中,但现在它已经嵌入到plantuml中了,所以直接到https://github.com/plantuml/plantuml/releases的github链接下载plantUML的jar包,注意下载下面后缀的:
在这里插入图片描述
步骤二: 编写好画图用的代码,保存为.txt文件(其实什么格式都行,只要内容是对的)。
步骤三: 使用命令行界面,执行该jar包来为运行好的画图代码。在这里插入图片描述
步骤四: 最后即可在运行的目录下得到画好的png图片。
在这里插入图片描述

总结

  • 如果你想快速上手,推荐使用 PlantUML 在线工具。
  • 如果你是 Java 开发者,强烈推荐 IntelliJ IDEA +
    PlantUML 插件。
  • 如果你喜欢 命令行自动化,可以使用 PlantUML JAR 包。

相关文章:

  • Docker学习--本地镜像管理相关命令--docker history 命令
  • 在Windows下使用Docker部署Nacos注册中心(基于MySQL容器)
  • 初识C++(入门)
  • kubernetes》》k8s》》Deployment》》ClusterIP、LoadBalancer、Ingress 内部访问、外边访问
  • 31天Python入门——第20天:魔法方法详解
  • TruPlasma RF 1002-G2/13 软件 TruPlasma RF 1003-G2/13软件 TRUMPF 调试监控软件
  • SQL Server:用户权限
  • 系统设计:高并发策略与缓存设计
  • 003-JMeter发起请求详解
  • LVS高可用负载均衡
  • 图漾相机——C#语言属性设置
  • 薛定谔的指针
  • Spring Cloud Gateway中Route Predicate Factories(路由断言工厂)的详细介绍
  • 华为OD机试 - 寻找连续区间 - 滑动窗口(Java 2024 E卷 100分)
  • Python入门(7):Python序列结构-字典
  • Docker容器网络相关设置
  • 【系统移植】 (二)交叉开发环境搭建
  • 【蓝桥杯真题精讲】第 15 届 Python A 组(省赛)
  • dounable to get image ‘nginx:latest‘: error during connect
  • 基于kubernetes构建jenkins+gitlab持续集成
  • “多规合一”改革7年成效如何?自然资源部总规划师亮成绩单
  • 美国将与阿联酋合作建立海外最大的人工智能数据中心
  • 玉渊谭天丨卢拉谈美国降低对华关税:中国的行动捍卫了主权
  • 习近平复信中国丹麦商会负责人
  • 为何选择上海?两家外企提到营商环境、人才资源……
  • 蚊媒传染病、手足口病……上海疾控发布近期防病提示