精华内容
下载资源
问答
  • uml关联
    万次阅读 多人点赞
    2018-09-27 09:03:17

    前言

    UML四大关系中,包括:泛化,实现,关联,依赖。

    泛化就是我们在面向对象中提到的继承,而实现则更多的体现在类和接口之间的关系。

    关联和依赖相对于上边两个关系,则表现的不是很容易理解,所以我们今天来深入学习一下。

     

    关联

     

    它表示类与类之间的连接,它使得一个类知道另一个类的属性和方法。

    关联可以用单向箭头表示单向关联,使用双箭头表示双向关联(不建议)。

    关联是类与类,类与接口之间的一种比较强烈的关系,它不是临时性的,而是长期性的。

     

    代码体现

    1.B作为A的属性出现在了A中

    2.关联类A引用了被关联类B的全局变量

     

    它的两个特例

    1.聚合:空心菱形箭头

    它也是关联关系的一个特例(has-a),但是此时整体和部分是分离的,有各自的声明周期。

    代码体现:通过实例变量来体现

    2.组合:实心菱形箭头

    是关联关系的一个特例(contain-a),比聚合关系更强,它和聚合最大的区别就是:整体和部分是不可分的(就好比人和氧气一样!)

    代码体现:它的体现在代码段和聚合并没有很大的区别,唯一的区别就是:部分和整体的声明周期是一致的。

                   

     

    依赖

     

    它表示类与类之间的连接,表示一个类依赖于另外一个类的定义,方向是单向的。(可以简单理解为:我吃饭用到筷子,所以在吃饭这件事上,我依赖于筷子,但是我不吃饭我就不依赖于它了!


    它具有偶然性,临时性,而且这种关系非常弱。但是类B(筷子)的变化会影响类A(我)。(如果没有筷子,我吃饭就会受到影响

    表示方法:虚线箭头

    它分为四种:

    1.精化

    2.跟踪

    3.包含

    4.延伸

     

    代码体现:

    1.A方法的参数是B(耦合)

    2.A方法的参数是B的属性(紧耦合)

    3.A方法中实例化了B

    4.A方法的返回值是B

     

    关系强弱排序:组合>聚合>关联>依赖

     

    虽然知识点不是很多,但是博主感觉都是挺重要的点。

    想要深入的理解这种关系,我们还是要多去实践,在代码中体会它们的异同,纸上学来终觉浅,绝知此事要躬行!加油!

    感谢大家认真阅读和点赞鼓励!有什么问题欢迎大家和我交流!

     

    更多相关内容
  • UML关联关系

    2022-05-12 12:47:31
    Relation关系 依赖 Dependency:依赖,比如说A类使用B类。 只要是在类中用到了对方,那么他们之间就存在依赖关系。如果没有对方,连编 绎都通过不了。 public class PersonServiceBean { //以成员变量的形式使用到...

    Relation关系

    依赖

    Dependency:依赖,比如说A类使用B类。 只要是在类中用到了对方,那么他们之间就存在依赖关系。如果没有对方,连编 绎都通过不了。

    public class PersonServiceBean {
        //以成员变量的形式使用到了PersonDao类
    private PersonDao personDao;//
        			//以方法参数的形式接收一个Person
    public void save(Person person){}
        //以返回值的形式用到了一个IDCard类
    public IDCard getIDCard(Integer personid){
        return new IDCard();
    }
    public void modify(){
     //以局部变量的方式使用到了一个Department,只是这里违反了迪米特法则,但是这里还是依赖了Department
    Department department = new Department();
    	}	
    }
    
    //PersonServiceBean依赖下面四个类
    public class PersonDao{}
    public class IDCard{}
    public class Person{}
    public class Department{}
    

    上面代码对应的类图关系如下所示

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iR4tFrCs-1652330835855)(img/1652272170842.png)]

    因为这里personDao是PersonServiceBean的一个成员属性,所以这里也可以表示聚合的形式将personDao聚合到PersonServiceBean,如下所示

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pHK0gpsw-1652330835857)(img/1652272263528.png)]

    小结:

    1. 类中用到了对方

    2. 如果是类的成员属性

    3. 如果是方法的返回类型

    4. 是方法接收的参数类型

    5. 方法中使用到

    泛化

    Generalization:泛化, 泛化关系实际上就是继承关系,他是依赖关系的特例

    public abstract class DaoSupport{
    public void save(Object entity){
    }
    public void delete(Object id){
    }
    }
    //这样两个类就构成了继承关系
    public class PersonServiceBean extends Daosupport{
    }
    

    对应的类图如下所示

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-luexi9UX-1652330835858)(img/1652272490023.png)]

    小结:

    1. 泛化关系实际上就是继承关系 (实线空心箭头指向父类)

    2. 如果A类继承了B类,我们就说A和B存在泛化关系

    实现

    Realization:实现,比如某个类实现了一个接口。 他也是依赖关系的特例

    public interface PersonService {
    public void delete(Interger id);
    }
    public class PersonServiceBean implements PersonService {
        @Override
    public void delete(Interger id){}
    }
    
    

    对应的类图如下所示,(虚线空心箭头指向父类)

    在这里插入图片描述

    关联

    Association:关联关系实际上就是类与类之间的联系,他还是依赖关系的特例

    关联具有导航性:即双向关系或单向关系

    关系具有多重性:如“1”(表示有且仅有一个),“0…”(表示0个或者多个), “0,1”(表示0个或者一个),“n…m”(表示n到 m个都可以),“m…*”(表示至少m 个)。

    单向一对一关系
    //一个人只有一个身份证,一个身份证也只能对应一个人;所以身份证跟人是一对一关系
    public class Person {
    private IDCard card;
    }
    //若果代码是这样写的话,就是单向一对一的关系。因为Person中有IDCard成员变量,而中IDCard没有Person成员变量
    public class IDCard{}
    
    

    对应的类图挺简单的,就不画了

    双向一对一关系
    public class Person {
    private IDCard card;
    }
    //因为Person中有IDCard成员变量,而中IDCard也有Person成员变量,所以这是双向一对一关系
    public class IDCard{
    private Person person
    }
    

    聚合

    聚合关系(Aggregation)表示的是整体和部分的关系,整体与部分可以分开。聚合关系是关联关系的特例,所以他具有关联的导航性与多重性

    导航性是指将A聚合到B中还是将B聚合到A中;多重性指A里面聚合了多少个B;

    如:一台电脑由键盘(keyboard)、显示器(monitor),鼠标等组成;组成电脑的各个 配件是可以从电脑上分离出来的,比如电脑没有鼠标还是电脑(如果不能分离开那就是组合的关系),聚合使用带空心菱形的实线来表示。

    public class Computer {
    	private Mouse mouse; //鼠标可以和computer分离
    	private Moniter moniter;//显示器可以和Computer分离
    	public void setMouse(Mouse mouse) {
    		this.mouse = mouse;
    	}
    	public void setMoniter(Moniter moniter) {
    		this.moniter = moniter;
    	}
    	
    }
    public class Moniter {
    
    }
    public class Mouse {
    
    }
    
    

    对应类图如下所示,

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fTCAr5ge-1652330835860)(img/1652275298280.png)]

    组合

    Composite:组合,也是关联关系的一种特例。比如说B类里面用到了一个A类,且这个A类是通过new创建的,也就是说当B类被初始化的时候A类也被初始化了。(耦合度比聚合高)

    上面聚合关系中的电脑案例,如果鼠标跟电脑不能分析,那就变成了组合关系了。

    public class Computer {
    	private Mouse mouse = new Mouse(); //直接通过new创建,鼠标和computer不能分离
    	private Moniter moniter = new Moniter();//显示器和Computer不能分离
    
    }
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-azrPu80N-1652330835860)(img/1652275890848.png)]

    关于组合关系,比如上面人跟身份证的关系就是聚合关系,人跟他的头就是一种组合关系,人可以弄掉了他的身份证,但不能弄掉了他的头。
    在这里插入图片描述

    展开全文
  • 正在学习uml,在网上找了这篇文章学习类之间的关系,虽然作者讲的已经很清楚,但我还是不能完全弄清楚他们之间的区别,尤其是关联、聚合、组合这三者的关系!!现在把这篇文章转载这里一遍深入了解 类之间的关系 1...

    正在学习uml,在网上找了这篇文章学习类之间的关系,虽然作者讲的已经很清楚,但我还是不能完全弄清楚他们之间的区别,尤其是关联、聚合、组合这三者的关系!!现在把这篇文章转载这里一遍深入了解

    类之间的关系

    1.种类: Generalization(泛化),Dependency(依赖关系)、Association(关联关系)、Aggregation(聚合关系)、Composition(合成关系)。

    2.其中Aggregation(聚合关系)、Composition(合成关系)属于Association(关联关系),是特殊的Association关联关系。

    3.Generalization(泛化)表现为继承或实现关系(is a)。具体形式为类与类之间的继承关系,接口与接口之间的继承关系,类对接口的实现关系。

    4. Association关联关系表现为变量(has a )。类与类之间的联接,它使一个类知道另一个类的属性和方法。例如如果A依赖于B,则B体现为A的全局变量。关联关系有双向关联和单向关联。双向关联:两个类都知道另一个类的公共属性和操作。单向关联:只有一个类知道另外一个类的公共属性和操作。大多数关联应该是单向的,单向关系更容易建立和维护,有助于寻找可服用的类。

    5. <!--[endif]-->Aggregation(聚合关系) 是关联关系的一种,是强的关联关系。聚合关系是整体和个体的关系。普通关联关系的两个类处于同一层次上,而聚合关系的两个类处于不同的层次,一个是整体,一个是部分。同时,是一种弱的“拥有”关系。体现的是A对象可以包含B对象,但B对象不是A对象的组成部分。具体表现为,如果A由B聚合成,表现为A包含有B的全局对象,但是B对象可以不在A创建的时刻创建。

    6. Composition(组合关系)是关联关系的一种,是比聚合关系强的关系。它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。Composition(组合关系)是一种强的“拥有”关系,体现了严格的部分和整体的关系,部分和整体的生命周期一致。如果A由B组成,表现为A包含有B的全局对象,并且B对象在A创建的时刻创建。

    7. Dependency(依赖关系)表现为函数中的参数(use a)。是类与类之间的连接,表示一个类依赖于另一个类的定义,其中一个类的变化将影响另外一个类。例如如果A依赖于B,则B体现为局部变量,方法的参数、或静态方法的调用。


    展开全文
  • UML关联关系

    千次阅读 2018-08-03 00:32:59
    UML关联关系 关联关系共有四种,由弱至强依次是:依赖 &amp;amp;amp;lt;关联 &amp;amp;amp;lt; 聚合&amp;amp;amp;lt;组合 依赖 从代码层面上看,被依赖的类B作为参数被类A在某个方法中...

    UML图关联关系

    关联关系共有四种,由弱至强依次是:依赖 <关联 < 聚合<组合

    依赖

    从代码层面上看,被依赖的类B作为参数被类A在某个方法中使用。这种使用关系是偶然性的,非常弱的。B类的变化会影响到A类。



    UML图表示如下

    关联

    从代码层面上看,被关联类B以类属性的形式出现在关联类A中也可能是关联类A引用了一个类型为关联类B的全局变量。它体现的是一种强关联关系。



    UML图表示如下

    聚合关系

    聚合是关联关系的一种特例,他体现的是整体与部分、拥有的关系,即has-a的关系,此时整体与部分之间是可分离的,他们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享;

    聚合也转换成Java中的一个实例作用域变量。因而,从代码层面无法区分他们,从语义层面上分析是:聚合暗示着整体比局部处于一个更高的级别,而关联表示两个类在概念上处于相同的级别。

    UML图表示如下

    组合关系

    组合也是关联关系的一种特例,他体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束;和关联关系是一致的,只能从语义级别来区分:

    暗示“局部”在“整体”内部的生存期职责。合成是非共享的。所以,虽然局部不一定要随整体的销毁而被销毁,但整体要么负责保持局 部的存活状态,要么负责将其销毁。局部不可与其他整体共享。

    UML图表示如下

    总结:实线比虚线的关联关系都要强,实心的菱形比空心的菱形关联关系要强。

    另:

    • 空心三角形+实线表示继承关系;
    • 空心三角形+虚线表示实现关系;
    • 实心三角形+虚线(最近在java编程思想中看到的一种UML线)大概是生产者和被生产者的关系吧;
    展开全文
  • uml关联多重度

    千次阅读 2020-12-29 16:25:05
    UML关联的多重度是指一个类的实例能够与另一个类的多少个实例相关联,这个“多少”被称为关联角色的多重度指定关联一端的多重度。也可以这样理解:在关联另一端的类的每个对象要求在本端的类必须有多 少个对象。...
  • UML中各种关系的含义1. 什么是UML图?2. UML图中的各种关系2.1 依赖 1. 什么是UML图? UML-Unified Modeling Language 统一建模语言,又称标准建模语言。是用来对软件密集系统进行可视化建模的一种语言。UML的定义...
  • uml关联符号说明

    2017-06-27 23:07:57
    UML中多重性关系可以直接在关联直线上增加一个数字表示与之对应的另一个类的对象的个数。 表示方式 多重性说明 1..1 表示另一个类的一个对象只与一个该类对象有关系 0..* ...
  • 由于经常需要画uml图,在这里记录以下类与类之间的关系 类与类之间的j基本关系主要分为: 依赖(Dependency) 泛化(Generalization) 实现(Interface Realization) 关联(Association) 聚合(Aggregation) 组合...
  • 二、类图中属性的表示方式三、类图中方法的表示方式四、类图中类关系的表示方式1、依赖(Dependence)2、关联(Association)3、聚合(Aggregation)4、组合(Composition)5、泛化(Generalization)6、实现...
  • UML关联(association)关系和依赖关系比较难以让人理解。今天查了一下《UML参考手册》。归纳如下 关联(association) 如果几个类元的实例之间有联系,那么这几个类元之间的语义关系即关联关联描述了系统中对象...
  • [UML] 类图之间的关系 | 1.关联关系

    千次阅读 2020-07-01 11:56:59
    UML类图中,用实线连接有关联关系的对象所对应的类,在使用Java、C++和C#等编程语言实现关联关系时,通常将一个类的对象作为另一个类的成员变量 在使用类图表示关联关系时可以在关联线上标注角色名 1.1 双向关联 ...
  • EA&UML日拱一卒-关联关联类)

    千次阅读 2017-04-12 20:18:36
    举例说明什么是关联类,怎么用关联类。
  • UML类图-关联和依赖的区别

    千次阅读 2019-07-18 22:03:08
    https://www.cnblogs.com/liuzhang/archive/2013/03/17/2964095.html 关联:一个类是另一个类的成员变量,可以是单向的,也可以是双向的。 依赖:一个类的某个方法参数类型为另一个类。 ...
  • UML类图有6种关系,泛化,实现,组合,聚合,关联,依赖,今天主要是说说依赖与关联。 网上图很多,我就不自己做图了,直接站在巨人的肩膀用网络上的图了。 1.依赖,用如下图来表示: 依赖是A的
  • 关联关系是两个类、或者类与接口之间的语义级别的一种强依赖关系。
  • UML-关联/聚合/组合

    2016-04-27 15:38:55
    聚合和组合都属于关联, 处于聚合关系的两个类生命周期不同步,则是聚合关系; 处于组合关系的两个类的生命周期同步。
  • PowerDesigner UML关联线显示名称

    千次阅读 2017-11-27 12:06:29
    在使用PowerDesigner绘制UML时,我们需要在两个实体之间进行建立关联关系,怎样显示关联关系的名称呢?下面将教你,呵呵。先看看效果图,如下图: 上图中,红色框中的即为关联的关系的名称。那我们需要怎样进行...
  • 目录类图定义类图中的事物类图中的关系关联关系双向关联单向关联关联多重性关联聚合关系(has-a)组合关系泛化关系依赖关系实现关系关联、聚合、组合之间的区别关联关系和依赖关系的区别 类图定义 类图以反映系统类...
  • UML六种箭头的含义2. UML六种分类的实例3. 使用腾讯文档里面的流程图里面选UML就行了 1. UML六种箭头的含义 2. UML六种分类的实例 下面的例子中, Person是抽象类, father和mather继承person类, son是派生类, 继承...
  • 在实现设计模式之前,首先来复习以下UML中的五种关系图 <1>依赖 依赖关系用虚线加箭头表示,如图所示: 上图表示:Animal类依赖于Water类(动物依赖于水)。 依赖是类的五种关系中耦合最小的一种关系。因为...
  • 众所周知,UML类图分为三种关系: 继承(实现)、依赖、关联。 其中关联又分为:组合和聚合; 共性:都是指两个类之间的耦合强弱,依赖<关联<继承。 首先我们介绍耦合最低的依赖关系。 依赖: 我认为的依赖关系...
  • UML类图之关联关系

    千次阅读 2017-05-13 00:32:00
    关联(Association)关系是类与类之间最常用的一种关系,它是一种结构化关系,...在UML类图中,用实线连接有关联关系的对象所对应的类。 通常将一个类的对象作为另一个类的成员变量。在使用类图表示关联关系时可以在...
  • 和大家一起学习一下UML中UML依赖和UML关联关系的异同,只有了解了他们之间的异同才能在使用的时候很好的选择,相信本节的学习一定会让你对UML中几种关系有一定的认识。 UML中UML依赖和UML关联关系的异同 1....
  • 关联 Association 表示一类对象对另一类对象之间有联系,如汽车和轮胎、师傅和徒弟、班级和学生等 【UML类图表示】:实线连接 【代码实现】:一个类的对象作为另一个类的成员变量。 聚合 Aggregation 表示整体与...
  • UML常用箭头关系

    2021-04-09 11:49:55
    关于UML建模学习的零碎知识1 泛化(Generalization)关系:继承的关系,实线带着三角形的箭头,指向父类。 实现(Realization)关系:实现的关系,虚线带着三角形的箭头,指向接口。 关联(Association)关系:拥有...
  • UML类图依赖与关联的区别

    万次阅读 2018-10-28 11:13:32
     关联 &gt; 聚合 &gt; 组合。  类和类之间八竿子打不着那就是没关系,这个没啥歧义。    依赖(dependency)    可以简单的理解,就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、、...
  • UML图——五种常用的关联属性详解

    千次阅读 2019-12-19 14:41:40
    UML图功能: UML图主要是为了体现各个类之间的关系以及整体架构的。因此通常情况下都只需写出Publc/Internal方法、属性...二、关联Directed Association(使用关系):学生和书本 这里分两种情况 2.1 A类中有B...
  • UML中,依赖和关联经常无法进行区分,在类图中,不知道什么时候使用依赖,什么时候使用关联,来定义两个类之间的关系。 今天看了一篇帖子,对这两种关系做了比较生动的区分 依赖指的是两个类之间发生的关系输入...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 53,400
精华内容 21,360
关键字:

uml关联