侧边栏壁纸
博主头像
孔子说JAVA博主等级

成功只是一只沦落在鸡窝里的鹰,成功永远属于自信且有毅力的人!

  • 累计撰写 377 篇文章
  • 累计创建 136 个标签
  • 累计收到 12 条评论

目 录CONTENT

文章目录

使用 IDEA 的 Diagram 功能查看 UML 类图

孔子说JAVA
2022-12-15 / 0 评论 / 0 点赞 / 91 阅读 / 2,974 字 / 正在检测是否收录...

IDEA 是一款非常强大的开发工具,可以在项目中生成 UML 类图,来反映应用项目中类的关系以及类与方法的结构。这可以更好地帮助我们进行一些程序设计、源码分析、问题排查等实际应用场景。本教程我们主要讲述如何使用 Idea 中的 Diagram 工具来生成、显示和分析 UML 类图。

20190625113812241

1、如何打开Diagrams

IDEA已经自带了Diagram功能,如果你的IDEA中没有该功能,可以安装 UML 插件,并保证 UML 插件处于生效状态。

image-1668475388322

可以在java类、包、模块、项目(或依赖的jar包中的类、包、模块)上面查看Diagrams,点击右键选择 Diagrams 菜单后有两种方式,分别是固定窗口模式(Show Diagram)与浮动窗口模式(Show Diagram Popup),二者在展示本质上没有区别。

  • Show Diagram 和 Show Diagram Popup 的区别是,前者使用 Tab 页打开类图页面,而后者使用 悬浮窗 打开类图页面。

无论选择那种窗口模式,将会出现进一步选择,用来生成类图(Java Class Diagrams)或者模块图(Java Modules Diagrams),一般而言,为很好的分析代码,类图是最佳方案

2、生成Diagrams的方式

IDEA 可供生成Diagrams(类图)的方式有多种,可以基于包生成类图,基于某个类文件生成类图,基于多个类(或接口)文件生成类图。

2.1 基于包生成类图

在IDEA中打开点击相应的引入jar包,逐级打开jar包的Package,选择最终要打开的Package(例如打开Package com.alibaba.druid.pool),在Package名称上右键包名称,选择 Diagrams -> Show Diagrams菜单。

image-1668475671702

此时会弹出一个类型选择对话框,其中Java Classes diagram表示生成java类图,Java Modules表示生成java模块图。一般而言,为很好的分析代码,类图是最佳方案。

image-1668476823112

这里选择Java Classes diagram,展示效果图如下:

image-1668476924707

如果选择Java Modules,展示效果图如下:

image-1668477122514

上述操作也可以在java文件所在的包上操作:

image-1668475817375

2.2 基于某个类文件生成类图

在IDEA中打开点击相应的引入jar包,逐级打开jar包的Package,右键点击要查看的类文件名称(例如打开Package com.alibaba.druid.pool中的 DruidDataSource 文件),选择 Diagrams -> Show Diagrams菜单。

image-1668475930552

此时会弹出一个类型选择对话框,具体操作同【1.1 基于包生成类图】中的操作。

当然也可以在java文件上操作:

image-1668476018058

2.3 基于多个类(或接口)文件生成类图

在IDEA中打开点击相应的引入jar包,逐级打开jar包的Package,选择多个文件(按住Ctrl再逐个点击相应的文件可多选类文件,按住shift键可连选),点击右键,选择 Diagrams -> Show Diagrams菜单。

image-1668476129768

此时会弹出一个类型选择对话框,具体操作同【1.1 基于包生成类图】中的操作。

也可以在java文件上这样操作:

image-1668476175728

3、基于java类生成Diagrams的详解示例

默认情况下对于某个类而言,生成的类图只展示类与其继承的接口(类)信息,以 AbsDataManager.java 文件为例(该类是我自己所写的获取数据接口的抽象实现类),在该类上右键选择 Diagrams -> Show Diagrams菜单,类图展示形式如下所示:

image-1668478609949

蓝色实现箭头指继承关系 image-1668479375172
绿色虚线箭头指接口实现关系 image-1668479351362
该图案表示内部类的关系 image-1668479289847

该窗口中默认选中的是AbsDataManager类,点击右键打开菜单,具体功能介绍如下:

image-1668478948517

3.1 Selected Element Actions

Selected Element Actions表示当前选中元素的操作,在弹出的菜单中选择 Jump to Source 选项或者按下快捷键 F4 ,即可跳转至该类的源代码文件。

3.2 Content

鼠标指向Content打开级联菜单如下图:

image-1668480403445

Add Class to Diagram 菜单选择后,可以添加你想加入的类到当前类图中。

  • 还支持拖动某个类到面板中,鼠标左键选中某个类,直接拖到面板中就能显示了。

Show Categories菜单选择后,可以选择展示相关类的私有字段(Fields)、构造函数(Constructors)、函数(Methods)、属性(Properties)以及内部类(Inner Classes)信息。

3.3 Show Implementations

选择此项会展示所选类的子类,选中某项可以在当前类图中添加。

image-1668481584566

3.4 Show Parents

选择此项会展示所选类的父类或接口,选中某项即可以在当前类图中添加。

image-1668481632156

3.5 Collapse Nodes & Expand Nodes

收缩和展开节点。

3.6 Delete

从类图中删除类节点,在类图中有些类并不是我们想要关心的,或者说我们想让目前的类图更加精准分析自己想看到的类关系,我们可以直接选中类图中不想看到的类节点,然后使用该功能菜单或直接使用键盘上的 delete 键删除即可。

3.7 Layout

调整类图布局,使用类图中右键菜单中的 Layout 选项,再选择子菜单项,即可改变当前类图的显示布局,以更好的显示类图关系。

image-1668482044242

按上图选择布局后的展示如下:

image-1668482080674

3.8 IDEA菜单输出

在生成的类图窗口空白处点击右键,点击“Export Diagram”-> “Export to Image…”,即可打开图片另存为窗口,选择保存路径后,点击ok按钮即可将当前类图保存到指定路径。

  • 根据需要,可选择文件名称、类型及存放路径,将相关的类图保存为图片

image-1668480746015

3.9 放大镜功能

如果觉得当前类图中的字太小,或者看不清,可以使用工具栏的放大按钮,也可以在类图上按住键盘上的 Alt 键,并移动鼠标,就会有放大镜的功能。

3.10 放大缩小

按住 Ctrl 键,滚动鼠标滚轮,可以对类图进行放大或缩小操作。

4、功能按钮

123

编号 按钮 功能
1 Fields
2 Constructors 构造器
3 Method 方法
4 Properties 属性,特指实现了Getter和Setter的属性
5 Inner Class 内部类
6 Show Dependencies 显示所选类或程序包的依赖关系
7 Change Item Ordering 更改元素排序
8 Change Visibility Level 更改要显示元素的可见性级别(public
9 Change Scope 更改文件的显示范围,比如 项目文件/非项目文件
10 Edge Creation Mode 边缘创建模式
11 Actual Size 按实际尺寸展示
12 Fit Content 在当前可视窗口填充完整内容,即所有内容在一屏展示
13 Apply Current Layout(Shift+F5) 应用当前布局,该布局是从类图的上下文菜单(右键菜单)中选择的,或者按 Shift+F5
14 Auto Route Edges(F5)
15 Copy Diagram to Clipboard 拷贝类图到剪贴板
16 Copy Selection to Clipboard 拷贝所选内容到剪贴板
17 Export Diagram 导出类图
18 Refresh Data Model 刷新数据模型
0

评论区