UML类图

2023-09-17 23:55:39

优质博客: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键删除类图。

更多推荐

一文了解亚马逊云科技适用于 Amazon Lightsail 的托管数据库

AmazonLightsail是亚马逊云科技提供的一种易上手使用、月度价格经济实惠,并包括了计算实例、容器、存储、数据库的虚拟专用服务器。在创建时可以进行业务蓝图选择,可选择包含多种操作系统(Linux/Windows等)或操作系统加上典型应用进行快速配置并可根据需求进行包括CPU、内存、存储、传输遂率等多种机型的快速

嵌入式:驱动开发 Day7

作业:基于GPIO子系统,编写LED的驱动程序和应用程序驱动程序:myled.c#include<linux/init.h>#include<linux/module.h>#include<linux/cdev.h>#include<linux/fs.h>#include<linux/device.h>#include

嵌入式Linux驱动开发(I2C专题)(五)

I2C系统驱动程序模型参考资料:Linux内核文档:Documentation\i2c\instantiating-devices.rstDocumentation\i2c\writing-clients.rstLinux内核驱动程序示例:drivers/eeprom/at24.c1.I2C驱动程序的层次I2CCore

北斗GPS网络时钟系统(子母钟系统)助力智慧教室建设

北斗GPS网络时钟系统(子母钟系统)助力智慧教室建设北斗GPS网络时钟系统(子母钟系统)助力智慧教室建设HR系列型NTP网络时钟系统是由我公司精心设计、自行研发生产的一套通过网口与母钟连接的子钟,接收母钟发送来的时间信息(信息内容:年、月、日、时、分、秒),将这些时间信息准确无误的显示出来。子钟带后备电池,停电时不显示

下拉框组件的封装(element ui )

目录实现思路创建通用的下拉选择框组件如何使用这个组件结语当你使用Vue.js构建Web应用时,封装可复用组件是提高开发效率和代码可维护性的关键之一。在这篇文章中,我们将探讨如何使用Vue.js来创建一个通用的下拉选择框组件,以及如何将它封装成一个可配置的组件。实现思路一级联动先从饿了么拿下拉列表数据处理提示名处理设定默

算法(三)

哈希表算法章节(1)Ascall码文章推荐给定两个字符串s和t,编写一个函数来判断t是否是s的字母异位词。注意:若s和t中每个字符出现的次数都相同,则称s和t互为字母异位词。classSolution{publicbooleanisAnagram(Strings,Stringt){//先说明一下字母异位词的定义://两

IBM存储设备

因工作的原因,本人以前在国内某大型金融机构工作,机器全是采购的IBM小型机,有X系列,有P系列。它们有一些特性,我总结了一下,分享出来,供大家选型参考。1.RAID控制器双活动型热插拔控制器,硬件XOR引擎2.缓存每个控制器2GB缓存;具备写缓存断电保护,系统外部断电后,写缓存数据可永久保留到闪存盘上3.主机接口提供≥

Zookeeper集群 + Kafka集群

kafka不能离开,需要通过zookeeper来管理定义Zookeeper是一个开源的分布式服务管理框架,存储业务服务节点元数据及状态信息,并把在Zookeeper上注册的服务器节点的状态信息通知给客户端(Zookeeper=文件系统+通知机制)工作机制☆☆☆☆☆从设计模式角度来理解:是一个基于观察者模式设计的分布式服

7年阿里测试经验之谈 —— 用UI自动化测试实现元素定位

随着IT行业的发展,产品愈渐复杂,web端业务及流程更加繁琐,目前UI测试仅是针对单一页面,操作量大。为了满足多页面功能及流程的需求及节省工时,设计了这款UI自动化测试程序。旨在提供接口,集成到蜗牛自动化测试框架,方便用例的设计。目前,在自动化测试的实际应用中,接口自动化测试被广泛使用,但UI自动化测试也并不会被替代。

Javascript中怎么使用map?

在JavaScript中,map()是一个用于数组的高阶函数,用于遍历数组中的每个元素并对每个元素执行一个指定的操作,然后将操作的结果存储在一个新数组中。以下是如何使用map()方法的基本语法:constnewArray=array.map(callback(currentValue[,index[,array]])[

什么是短路表达式?

短路表达式是一种在编程中常用的逻辑运算方式。它利用了逻辑运算符的特性,当满足某个条件时,就会停止继续执行后面的逻辑判断。在大多数编程语言中,短路表达式主要使用逻辑与(&&)和逻辑或(||)两个运算符。短路表达式的作用有以下几点:提高效率:当使用逻辑与(&&)运算符时,如果第一个操作数为假(false),则整个表达式必定

热文推荐