UML类图

优质博客:IT-BLOG-CN

UML(Unidied Modeling Language)统一建模语言:用来设计软件的可视化建模语言,能够表达软件设计中的动态与静态信息。UML定义了用例图、类图、对象图、状态图、活动图、时序图、协作图、构件图、部署图等9种图。

IDEA 展示类图及类图关系

【1】选中.java或者编辑的.java文件内部,右键选择Diagrams->show Diagrams...随后选择弹出的Java Class Diagrams


【2】如下就是当前类的UML关系图

类与类一共有如下几种关系:泛化Generalization、实现Realization、依赖Dependence、关联Association、聚合Aggregation、组合Composition
泛化Generalization 也叫作继承关系,在UML中我们用带空心三角形的直线来表示,对应IDEA中的蓝色线和蓝色三角;
实现RealizationJava中类与接口的实现关系,在UML中我们用带空心三角形的虚线表示,对应IDEA中的绿色虚线和绿色三角;
依赖Dependence 指一个类使用另一个类,这种依赖关系我们用带箭头的虚线表示;

public class ServiceImpl<M extends BaseMapper<T>, T> implements IService<T> {protected M baseMapper;public boolean save(T entity) {return this.retBool(this.baseMapper.insert(entity));}

关联Association 关联关系是一种比较强的关系,他们的关系是比较持久的,稳定的。关联分单向关联和双向关联,如果一个类知道或者引用了另一个类,而另一个类不知道或者没有引用这个类,则这两个类是单向关联的。单向关联我们用带箭头的实线表示,箭头指向被引用或者被包含的类。双向关联是两个类彼此都知道对方的存在,双向关联用不带箭头的实线来连接两个类;
聚合Aggregation 聚合关系是一种特殊的关联关系,聚合关系强调的是整体和部分的关系,其中部分可以脱离整体而存在。在UML类图中聚合用带空心菱形的直线表示,其中菱形指向整体;

public class A{     public B b;        public A(B b){this.b = b;     }  
} 

组合Composition 组合关系也是一种特殊的关联关系,它与聚合关系很像,也是强调整体与部分的关系,不同的是部分无法脱离整体存在。用带实心的菱形直线表示,其中菱形指向整体;

public class A{     public B b;        public A(){// ...this.b = NEW B();  // ...   }  
} 

【3】可以选择类右键后选择Show Categories展示类图的详细信息

【4】当方法太多时,可以右键选择Change Visibility Level进行筛选

【5】查看具体代码,选择类图之后右键Jump to Source

【6】可以通过Add Class to Diagram添加类,也可以选择类图后,通过Delete键删除类图。

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

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

相关文章

外星人入侵游戏-(创新版)

&#x1f308;write in front&#x1f308; &#x1f9f8;大家好&#xff0c;我是Aileen&#x1f9f8;.希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流. &#x1f194;本文由Aileen_0v0&#x1f9f8; 原创 CSDN首发&#x1f412; 如…

Improving 3D Imaging with Pre-Trained Perpendicular 2D Diffusion Models

使用预先训练的垂直 2D 扩散模型改进 3D 成像 论文链接&#xff1a;https://arxiv.org/abs/2303.08440 项目链接&#xff1a;https://github.com/hyn2028/tpdm Abstract 扩散模型由于其众多的优点已经成为一种流行的图像生成和重建方法。然而&#xff0c;大多数基于扩散的逆…

【C++从入门到精通】第2篇:C++基础知识(中)

文章目录 2.1 iostream介绍&#xff1a;cout、cin和endl2.1.1 输入/输出库2.1.2 std::cout2.1.3 std::endl2.1.4 std::cout是缓冲的2.1.5 std::endl与\n2.1.6 std::cin2.1.7 总结2.1.8 练习时间 2.2 未初始化的变量和未定义的行为2.2.1 未初始化的变量2.2.2 未定义行为2.2.3 明…

java中集合的List

集合的List 可以存储重复元素 以下情况使用 ArrayList : 频繁访问列表中的某一个元素。只需要在列表末尾进行添加和删除元素操作。 以下情况使用 LinkedList : 你需要通过循环迭代来访问列表中的某些元素。需要频繁的在列表开头、中间、末尾等位置进行添加和删除元素操作。…

YOLOv8学习

1 YOLOv8训练自己的数据集 1.1 部署和运行 1.1.1 第一步&#xff0c;下载代码 源码地址 1.1.2 第二步&#xff0c;创建环境 默认已经安装好conda conda create -n yolopy38 python3.8conda activate yolopy38安装所需要的包&#xff0c;先cd到代码目录下 pip install -r…

陈芳允于1971年提出双星定位

中国究竟有多强大&#xff1f; - 知乎 真是天才设想&#xff01;通过两个同步卫星实现定位。定位原理&#xff1a;使用两个同步卫星&#xff0c;把地球作为第三星。 内容摘录如下&#xff1a; 大家都知道&#xff0c; 1970 年中国的「东方红一号」卫星升空。 但许多人不知…

基于Java的养老院管理系统的设计与实现(亮点:多角色、登录验证码、留言反馈)

养老院管理系统 一、前言二、我的优势2.1 自己的网站2.2 自己的小程序&#xff08;小蔡coding&#xff09;2.3 有保障的售后2.4 福利 三、开发环境与技术3.1 MySQL数据库3.2 Vue前端技术3.3 Spring Boot框架3.4 微信小程序 四、功能设计4.1 主要功能描述 五、系统实现5.1 养老院…

Linux底层基础知识

一.汇编&#xff0c;C语言&#xff0c;C&#xff0c;JAVA之间的关系 汇编&#xff0c;C语言&#xff0c;C可以通过不同的编译器&#xff0c;编译成机器码。而java只能由Java虚拟机识别。Java虚拟机可以看成一个操作系统&#xff0c;Java虚拟机是由汇编&#xff0c;C&#xff0c…

【深度学习实验】线性模型(三):使用Pytorch实现简单线性模型:搭建、构造损失函数、计算损失值

目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 三、实验内容 0. 导入库 1. 定义线性模型linear_model 2. 定义损失函数loss_function 3. 定义数据 4. 调用模型 5. 完整代码 一、实验介绍 使用Pytorch实现 线性模型搭建构造损失函数计算损失值 二、…

WebGL笔记:设置画布底色,从样式中解析颜色并设置画布底色,设置动态画布底色

1 ) 通用结构代码 <canvas id"canvas"></canvas><script>// 获取dom元素const canvas document.querySelector("#canvas");// 设置宽高canvas.width 200;canvas.height 200;// 获取gl三维画笔const gl canvas.getContext("web…

idea创建springboot项+集成阿里连接池druid

创建项目并集成流程 1&#xff1a;前提准备2&#xff1a;创建springboot项目流程3&#xff1a;集成阿里连接池步骤4&#xff1a;集成swagger方便测试5&#xff1a;书写增删改查进行测试6&#xff1a;项目gitee地址 1&#xff1a;前提准备 准备开发工具&#xff1a;idea java环…

nginx知识点详解:反向代理+负载均衡+动静分离+高可用集群

一、nginx基本概念 1. nginx是什么&#xff0c;做什么事情&#xff1f; Nginx是一个高性能的HTTP和反向代理服务器&#xff0c;特点是占有内存少&#xff0c;并发能力强。Nginx转为性能优化而开发&#xff0c;能经受高负载考验。支持热部署&#xff0c;启动容易&#xff0c;运…

linux内核分析:线程和进程创建,内存管理

lec18-19:进程与线程创建 lec20-21虚拟内存管理 内核代码,全局变量这些只有一份,但是内核栈有多份,这可能就是linux线程模型1对1模式的由来。通过栈来做的 x86 CPU支持分段和分页(平坦内存模式)两种 分段,选择子那里就有特权标记了

Linux多线程【线程控制】

✨个人主页&#xff1a; 北 海 &#x1f389;所属专栏&#xff1a; Linux学习之旅 &#x1f383;操作环境&#xff1a; CentOS 7.6 阿里云远程服务器 文章目录 &#x1f307;前言&#x1f3d9;️正文1、线程知识补充1.2、线程私有资源1.3、线程共享资源1.4、原生线程库 2、线程…

GIS跟踪监管系统单元信息更新

GIS跟踪监管系统单元信息更新 单元信息更新。① 新增单元。② 编辑单元。③ 删除单元。物资查询&#xff08;1&#xff09;物资查询与展示。① 几何查询。• 单击查询&#xff1a;• 拉框查询&#xff1a;• 多边形查询&#xff1a;② 物资定位。• 多个物资定位&#xff1a; 单…

关于oss直传

为什么要使用oss直传&#xff1a; 前后端文件传输涉及数据较大&#xff0c;往往会成为很多项目的性能瓶颈。常见的传输方式也有不少&#xff0c;相对来说&#xff0c;OSS直传能够减轻很大压力。 传统方式相比直传OSS&#xff0c;相对来说有三个缺点&#xff1a; 上传慢&…

Visual Studio2019报错

1- Visual Studio2019报错 错误 MSB8036 找不到 Windows SDK 版本 10.0.19041.0的解决方法 小伙伴们在更新到Visual Studio2019后编译项目时可能遇到过这个错误&#xff1a;“ 错误 MSB8036 找不到 Windows SDK 版本 10.0.19041.0的解决方法”&#xff0c;但是我们明明安装了该…

pbjs生成的decode方法decode对象的问题

前端使用了pbjs编译proto文件, 使用编译后的encode方法序列化并post到服务器 contentType设置为application/x-protobuf(也尝试过使用application/octet-stream) 服务端接收到的二进制数据长这样, b\n\x03xxx\x12\x03p2p \xfb\xb2((\x81\xb6(B\t\xe7\x9a\x84\xe8\x90\xa8\xe8\…

智慧公厕:不放过任何“卫生死角”,为公共厕所装上“净化系统”。

#智慧公厕[话题]# #智慧公厕系统[话题]# #智慧公厕管理系统[话题]# #智慧公厕设备[话题]# #智慧公厕厂家[话题]# 在社会活动中&#xff0c;公共厕所是我们经常使用和停留的场所。然而&#xff0c;由于传统公共厕所的粗放式管理&#xff0c;导致卫生情况差、设备不齐全、配置破…

MySql中分割字符串

MySql中分割字符串 在MySql中分割字符串可以用到SUBSTRING_INDEX&#xff08;str, delim, count&#xff09; 参数解说       解释 str         需要拆分的字符串 delim         分隔符&#xff0c;通过某字符进行拆分 count          当 count 为正数&…