精华内容
下载资源
问答
  • 类关系
    千次阅读
    2019-03-07 12:41:18

    使用IDEA 的类UML 图分析类关系


    1、初始化UML 分析设置

    在这里插入图片描述

    2、右键某个类打开UML 分析图

    在这里插入图片描述

    更多相关内容
  • 使用 idea查看类关系图形

    千次阅读 2019-06-22 22:47:57
    idea使用Diagram图形查看类关系 标签:idea diagram 写在前面 最近在闲下来在看 spring 源码的时候,发现根本对 diagram 不熟,看到的类关系一脸懵逼,理解上也是烂七八糟,这次利用 idea diagram,结果真的是...

    idea使用Diagram图形查看类关系

    标签:idea diagram


    写在前面

    最近在闲下来在看 spring 源码的时候,发现根本对 diagram 不熟,看到的类关系一脸懵逼,理解上也是烂七八糟,这次利用 idea diagram,结果真的是一目而然,好东西就要利用起来,就此分享。

    1、查看图形

    在 idea 中查看类关系,大家都会经常用到。步骤如下,①在类的标签页内。点击右键,选择 Diagram,其中 show 和 show …Poup,区别就是前者在新建的标签内,后者以复现的形式展示;②实际上还可以在项目目录树,对你想查看的类点击右键,同样选择 Diagrams 效果也是一样

    在这里插入图片描述

    然后就得到下面所示的继承关系,以 spring 中核心类DefaultListableBeanFactory

    在这里插入图片描述

    显而易见:
    蓝色实现箭头是指继承关系
    绿色虚线箭头是指接口实现关系

    2、有时候需要我们优化继承链图形

    2.1 去掉不关系的类

    得到的继承关系图形,有些并不是我们想去了解的,比如上图的SuppressWarnings,我们只想关心Beanfactory重要的那几个继承关系,怎么办?

    点击选择你想要删除的类,然后直接使用键盘上的delete键就行了。清理其他类的关系后图形如下

    在这里插入图片描述

    2、显示详细的类信息

    有人说,诶,这怎么够呢,那继承下来的那些方法我也想看啊?简单,IDEA通通满足你。

    在页面右键,选择 show categories,根据需要可以展开类中的属性、方法、构造方法等等;当然也可以使用工具栏

    在这里插入图片描述

    在这里插入图片描述

    什么,方法里你还想筛选,比如说想看protected权限及以上范围的?简单,右键选择 Change Visibility Level,根据需要调整即可。

    在这里插入图片描述

    什么,你嫌图形太小你看不清楚?IDEA也可以满足你,按住键盘的Alt,竟然出现了放大镜,惊不惊喜,意不意外?

    3、引入其它类

    当我们还需要查看其他类和当前类是否有继承上的关系的时候,我们可以选择加其加入到当前的继承关系图形中来。

    在页面点击右键,选择 Add Class to Diagram,然后输入你想加入的类就可以了:

    在这里插入图片描述

    查看具体代码

    如果你想查看某个类中,比如某个方法的具体源码,当然,不可能给你展现在图形上了,不然屏幕还不得撑炸?

    但是可以利用图形,或者配合IDEA的structure方便快捷地进入某个类的源码进行查看。

    双击某个类后,你就可以在其下的方法列表中游走,对于你想查看的方法,选中后点击右键,选择 Jump to Source:

    在这里插入图片描述

    在进入某个类后,如果还想快速地查看该类的其他方法,还可以利用IDEA提供的structure功能:

    在这里插入图片描述

    选择左侧栏的structure之后,如上图左侧会展示该类中的所有方法,点击哪个方法,页面内容就会跳转到该方法部分去。

    在这里插入图片描述

    展开全文
  • IDEA查看类关系图的正确姿势

    万次阅读 2019-04-28 22:22:56
    有时候学习某个类库需要了解之间的关系,用来理解或者写文章,有些人会手动画UML图,比较浪费时间。 其实可以通过IDEA提供的功能来实现。 可以菜单或者快捷键直接显示继承关系图: 效果如下: 另外还...

    有时候学习某个类库需要了解类之间的关系,用来理解或者写文章,有些人会手动画UML图,比较浪费时间。

     

    其实可以通过IDEA提供的功能来实现。

    可以菜单或者快捷键直接显示继承关系图:

    效果如下:

    另外还可以添加其他想梳理的类,来查看他们之间的关系。

    比如我们可以到List源码中,点击scroll from source到源码包中

    然后添加ArrayList/LinkedList等到图中,查看他们之间的关系。

     

    可以显示依赖关系

    可以切换成圆形布局等

     

     

    还可以显示属性,方法等

    还可以分析依赖矩阵等,功能非常强大。

     

     

    如果觉得本文对你有帮助,欢迎点赞评论,欢迎关注我,我将努力创作更多更好的文章。

    另外欢迎加入我的知识星球,知识星球ID:15165241 一起交流学习。

    https://t.zsxq.com/Z3bAiea  申请时标注来自CSDN。

    展开全文
  • UML类图以及常见类关系图解

    千次阅读 2019-01-07 00:07:43
    最近查询了类图中的常见关系,网上有不少或详细或简略的解释,大部分都是一张图被来来回回的复制粘贴,我借这个文档重新梳理一下概念和类关系。 文章目录基本概念类关系泛化 Generalization实现 Realization依赖 ...

    最近查询了类图中的常见关系,网上有不少或详细或简略的解释,大部分都是一张图被来来回回的复制粘贴,我借这个文档重新梳理一下概念和类关系。

    基本概念

    类图(Class Diagram): 类图是面向对象系统建模中最常用和最重要的图,是定义其它图的基础。类图主要是用来显示系统中的类、接口以及它们之间的静态结构和关系的一种静态模型。

    类图的3个基本组件:类名、属性、方法。
    类图基本属性

    在画类图的时候,常见的类关系有:泛化(Generalization)、实现(Realization)、依赖(Dependency)和关联(Association)。其中关联又分为一般关联关系和聚合关系(Aggregation),组合关系(Composition)。下面我们结合实例理解这些关系。

    关系名英文关系描述标识
    泛化Generalization表示is-a的关系,子类继承父类带三角箭头的实线
    实现Realization表示接口和实现的关系带三角箭头的虚线
    依赖Dependency表示use-a的关系,临时性的关联带箭头的虚线
    关联Association表示对象之间的引用关系带箭头的实线
    聚合Aggregation表示has-a的关系,是一种不稳定的包含关系带空心菱形的实线
    组合Composition表示contains-a的关系,是一种强烈的包含关系带实心菱形的实线

    关系的强弱顺序:
    泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖

    类关系

    泛化 Generalization

    • 关系描述:表示is-a的关系,子类继承父类。
    • 箭头指向:子类指向父类

    在这里插入图片描述

    • 代码实现:
    public class Bird extends Animal {
    }
    
    • 思考:
      • 泛化和继承是一回事吗?
        继承和泛化都表示的是子类和父类的关系,但也有区别,只是看问题的角度不同,子类继承父类,父类泛化子类。
      • 为什么建议多用组合少用继承?
        类继承是在编译时静态定义,子类继承可以方便的改变父类的实现,同时也有不足之处:1. 因为继承在编译时刻就定义了,所以无法在运行时改变父类继承的实现。2. 父类通常定义了子类的部分行为,父类的任何改变都可以影响子类的行为,如果继承下来的实现不适合子类,则父类必须重写或被其他更适合的替换,不论哪种都要考虑对继承于父类的其它子类的影响。这种强依赖关系限制了灵活性并最终限制了复用性。
        组合是通过获取对其他对象的引用而在运行时刻动态定义的,由于组合要求具有良好定义的接口,而且,对象只能通过接口访问,所以我们并不破坏封装性;只要类型一致,运行时刻还可以用一个对象来替代另一个对象;更进一步,因为对象的实现是基于接口写的,所以实现上存在较少的依赖关系。

    实现 Realization

    • 关系描述:表示接口和实现的关系。
    • 箭头指向:实现类指向接口
      在这里插入图片描述
    • 代码实现:
    public class Bird implements IFly {
    }
    
    • 思考:
      接口是一种特殊的抽象类,这种抽象类中值包含常量和方法的定义,而没有变量和方法的实现。

    依赖 Dependency

    • 关系描述:类之间最弱的一种关联方式,是临时性的关联,表示Use a。代码中一般指由局部变量、函数参数、返回值建立的对于其他对象的调用关系。一个类调用被依赖类中的某些方法而得以完成这个类的一些职责。
    • 箭头指向:使用类指向被依赖类
      在这里插入图片描述
    • 代码实现:
    public abstract class Animal{
    }
    
    public class Air{
    }
    
    public class Water{
    }
    
    • 思考:
      • 依赖关系到底是如何体现的呢?
        • Air、Water类是全局的,则Animal类可以调用它
        • Air、Water类是Animal类的方法中的局部变量
        • Air、Water类是作为Animal类中方法的参数或者返回值
    public class Animal {  
        public void Grow() {
    		Air air = new Air();
    		Water water = new Water();
        }
        
        public Water Drink(Water water) {
        }
    }
    

    关联 Association

    • 关系描述:表示对象之间一种引用关系,比如客户类与订单类之间的关系。这种关系通常使用类的属性表达。关联分为一般关联、聚合关联与组合关联。一般关联又可以分两类:单向关联和双向关联。
    • 箭头指向:引用类指向被引用类
      在这里插入图片描述
    • 代码实现:
    public class Water {  
         public Climate climate;  
         public Water() {}
    }
    
    • 思考:
      • 其它关联的例子?
        上面用水和气候作为一个例子,作为引用关系理解起来比较弱。这里再举一个例子,比如学生与课程的双向关联关系,一个学生可以有选择多门课程,同时一门课有多名报名的学生。
        在这里插入图片描述
      • 依赖关联和关联关系的区别在哪里?
        (1)从类属性定义角度看:
        发生依赖关系的两个类都不会增加属性,其中的一个类作为另一个类的方法的参数、返回值,或者局部变量存在。
        发生关联关系的两个类,其中的一个类称为另一个类的属性,而属性是一种更为紧密的耦合,更为长久的持有关系。
        (2)从关系的生命周期角度看:
        依赖关系是仅当类的方法被调用时而产生的,伴随着方法的结束而结束。
        关联关系是当类实例化的时候即产生,当类对象销毁的时候,关系结束。相对依赖来说,关联关系的生命周期更长。

    聚合 Aggregation

    • 关系描述:表示has-a的关系,是一种不稳定的包含关系。较强于一般关联,有整体与局部的关系,并且没有了整体,局部也可单独存在。如公司和员工的关系,公司包含员工,但如果公司倒闭,员工依然可以换家公司。再比如班级与学生的关系,动物中雁群和大雁的关系,大部分例子都是群体和个体的关系。
    • 箭头指向:带空心菱形的实线,菱形指向整体,箭头指向个体
      在这里插入图片描述
    • 代码实现:
    public class WildGooseGroup {
        public List<WildGoose> wildGooses;
    
        public WildGooseGroup (List<WildGoose> wildGooses) {
            this.wildGooses = wildGooses;
        }
    }
    
    • 思考:
      有的用汽车和轮胎的关系作为聚合的例子,这里判断这种关系是聚合还是组合的关键在于对于部分概念的定位。如果系统服务于汽车使用人,定位轮胎只能作为汽车的一部分出现,那么轮胎就是汽车不可分割的一部分,汽车和轮胎就是组合关系。如果系统服务于汽车制造商/修理厂,定位轮胎是汽车的一个部件,可以使用不同轮胎和汽车进行装配,那么轮胎就是可以独立于汽车存在,汽车和轮胎就是聚合关系。
      在实现上,部分类都是作为整体类的一个属性进行关联。

    组合 Composition

    • 关系描述:表示contains-a的关系,是一种强烈的包含关系。组合类负责被组合类的生命周期。是一种更强的聚合关系。部分不能脱离整体存在。如公司和部门的关系,没有了公司,部门也不能存在了。
    • 箭头指向:带实心菱形的实线,菱形指向整体,箭头指向部分
      在这里插入图片描述
    • 代码实现:
    public class WildGoose extends Bird {
        private List<Wing> wings;
        public WildGoose () {
            wings = new ArrayList<>();
        }
    }
    
    • 思考:
      • 组合关联和聚合关联的区别在哪里?
        (1)构造函数不同
        聚合类的构造函数中包含了另外一个类作为参数,WildGooseGroup的构造函数中用到WildGoose作为参数传递进来,WildGoose可以脱离WildGooseGroup独立存在。
        组合类的构造函数中包含了一个类的实例化,表明大雁类在实例化之前,一定要先实例化Wing类,这两个类紧密的耦合在一起,同生共灭。Wing类是不可以脱离大雁类独立存在的。
        (2)信息的封装性不同
        聚合关系中,客户端可以同时了解WildGooseGroup和大雁类,因为他们是独立的;
        组合关系中,客户端只认识大雁类,不知道Wing类的存在,因为Wing类被封装在大雁类中。

    一图汇总

    在这里插入图片描述
    上面的6类关系汇总在一张图上

    参考

    UML类图与类的关系详解 - uml.org.cn
    UML类图 - w3cschool
    UML类图几种关系的总结 - tianhai110 csdn blog
    UML类图五种关系与代码的对应关系 - Zhangxichao100 csdn blog

    展开全文
  • IDEA自动生成类关系

    万次阅读 2018-08-21 18:03:53
    找到所有--&gt;ctrl+h--&gt;点击左键--&gt;Diagrams,有两种选择,任选一种就可以看到关系图了(记录一下,防忘记)  
  • UML——类关系

    千次阅读 2018-04-28 13:13:46
    类图显示了一组,接口,协作以及它们之间的关系。在UML中问题域要被逐步转化,通过来建模。之间有五种关系:1、依赖关系。就是A中某个具体方法a中用到B,然后在A::a方法中实例化了B进行使用。是五...
  •   在学习C#的过程中,遇到这么一个问题——查看项目中的类图(关系图)。根据网上讲的流程,我在VS2017并没有发现这个功能,然后就在想,这是不是得安装一个东西呢?因为前期在安装VS的时候,我都是选择性的...
  • Qt5继承关系

    千次下载 热门讨论 2014-01-29 12:21:51
    Qt5继承关系图,对于理清Qt5框架还有有点帮助的。pdf文档只有一面,缩放比例放小一点。
  • idea-mac-查看类关系图-快捷键

    千次阅读 2019-07-03 21:10:00
    1. 看继承关系 快捷键 control + h查看hierarchy,只能查看向上向下继承关系,而不能看实现了哪些接口。 右键选择Diagrams(也可以使用快捷键ctrl... command + alt + B会显示出跟这个接口有关系。 然后加com...
  • 在学习面向对象设计时,类关系涉及依赖、关联、聚合、组合和泛化这五种关系,耦合度依次递增。关于耦合度,可以简单地理解为当一个类发生变更时,对其他类造成的影响程度,影响越小则耦合度越弱,影响越大耦合度越强...
  • 如何根据实体类关系建表

    千次阅读 2016-07-15 15:08:02
    经常建表的时候觉得关系混乱,今天看到传智播客教学的是根据实体映射表的方式,总结出来的建表方法。 以上图项目为例,我做的系统管理。系统管理下有三个分支,分别为岗位管理、部门管理、用户管理。 首先...
  • 之间的关系

    万次阅读 多人点赞 2018-06-28 17:21:10
    之间的6种关系一、UMLa) Unified Modeling Language (UML)又称统一建模语言或标准建模语言b) 它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持c) 它不仅统一了...
  • c#基本图形类关系

    千次阅读 2015-02-05 16:15:15
    c#画图常用总结,
  • https://github.com/kimsungwhee/KSHObjcUML安装方法:1、下载项目2、运行3、会重新开启一个新的xcode4、选择一个项目,点击 Objc-UML 会自动生成并打开生成的类图。效果图不上了,用用试试。
  • 之间的几种关系

    千次阅读 2020-09-27 16:45:39
    3、 之间的关系有哪几种? 关联(简单关联(Association)、聚合(Aggregation)、组合(Composition))、实现(Implementation)、依赖(Dependence)、泛化(Generalization)。 4、 之间的关联属性有哪些? 方向/导航...
  • starUML简介 1一款开源的UML开发工具(免费) ...接下来我们画一张比较完整的类图,关系有:继承、组合、聚合、依赖、关联 参照的图是: 开始画图 如图所示先点击左边Toolbox 中的cl...
  • 类关系说起

    千次阅读 2016-05-07 19:43:45
    温故知新,最近更多的是研究和开发各种类库,对设计的是有些感触.以前在大学的时候,虽然知道,但是总归是欠缺经验的,现在...所谓的设计不正是采用恰当的方式组织雷类关系么?因此谈设计我认为首先要从类之间的关系开始说起.
  • UML之间的关系详解

    千次阅读 多人点赞 2020-04-15 21:27:25
    五分钟读懂UML类图 12-10 10:411097浏览举报 T字号 平时阅读一些远吗分析文章...在UML类图中,使用包含类名、属性(field) 和方法(method) 且带有分割线的矩形来表示,比如下图表示一个Employee,它包含name,ag...
  • IDEA 查看之间的关系图详解

    千次阅读 2021-05-04 22:11:09
    在idea 选中要查看的,使用Control+H 命令就可以查看的依赖架构图。这里我们已ArrayList为例子。 可以看到,使用之后出现了以上图片,ArrayList的架构图一目了然,这样也方便我们去查看源码分析。 Diagrams ...
  • IDEA查看Java的UML关系

    千次阅读 2022-01-18 11:02:19
    可以方便的查看Java的UML关系图, 同时能有选择的查看变量、方法和构造器等, 以及对查看对象的访问权限进行过滤, 可以自由编辑生成的关系图, 任意新增或者删除, 还能保存以及导出为图片等多种格式。 2.功能...
  • 之间的关系和耦合度

    千次阅读 2020-06-30 21:19:46
    写了很多年代码,都没有考虑过之间的关系,大家了解比较多的是继承关系,其实还有很多其他关系我们也使用了,但是并没有一个明确的概念,还有之间的耦合度也不是很清楚,接下来介绍之间的关系。...
  • Java 之间的关系

    千次阅读 2019-04-28 20:58:11
    Java 之家的关系 一、继承关系 继承指的是一个(称为子类、子接口)继承另外的一个(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。 在Java中继承关系通过关键字extends明确标识,在设计时...
  • UML中之间的六大关系

    万次阅读 多人点赞 2018-08-11 13:54:10
    理解六大关系中在代码中的体现,就可以轻松的阅读设计模式 一、泛化关系(Generalization) 说明:这种关系就是面向对象语言中的继承关系,逻辑上可以用"is a"表示。 代码体现:子类继承父类。 UML...
  • 之间的六种关系的表示方法

    千次阅读 2019-02-22 12:03:52
    之间有以下六种关系: 依赖 关联 聚合 组合 实现 泛化 1、依赖关系 虚线+箭头表示 例如:人与车 2、关联关系 实线+箭头表示 例如:老师与课程 3、聚合关系 空心菱形+箭头表示 例如:大雁和雁群 4、组合...
  • 带你了解软件工程中的关系一、UML图1.UML图简介2.UML图分类3.类图二、六大关系1.依赖关系(Dependence)2.泛化关系(Generalization)3.实现关系(Realization)4.关联(Association)5.聚合(Aggregation)...
  • VS2017中无法查看类关系

    万次阅读 2018-09-12 00:59:35
    选中项目----&gt;右键-----&...VS2017中无法查看类关系图怎么办? 1.打开vs后的初始界面,点击创建项目 2. 弹出的界面中,点击左下角的“打开Visual Studio 安装程序” 3. 弹出界面中,选择 ...
  • vs2008 中查看类关系视图

    千次阅读 2012-11-22 09:39:45
    在VS2008中,有时需要查看类的关系图,需要点一个按钮,平时这个按钮不会出现.当点击项目名称时,在解决方案资源管理器上方会出现查看类关系的图标。点击即可。可以找到放大镜放大查看。
  • 集合的父子类关系

    千次阅读 2017-11-13 20:54:04
    一.Collection的父子类关系 1.Iterable(java集合的顶级接口之一)——实现此接口的类可以使用新的for循环2.Iterator(接口,遍历器)ListIterator 方法:hasNext();next();remove(); 3.Collection(接口,继承...
  • 用例关系 用例图使用户 与开发人员交流的一种重要的方式,是对用户需求的一种描述。开发人员从用户的角度整体上理解系统的功能。 1)用例“注册学生信息”和“充值”与用例“用户登陆”之间的关系就是包含关系。b...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,796,475
精华内容 1,118,590
关键字:

类关系

友情链接: newerMainScript.zip