生活中,我们既是独立的个体,又通过联系形成各种关系,比方说:朋友。恋人。父子,同学……于是乎,出现了神乎其神的六人定律

那么在UML中又存在什么样的关系呢?以下我们来梳理一下。

关联(Association)

         描写叙述了两个或多个类之间的结构性关系。

         图示:直线或直线+箭头  

     双向关联:

         指两方都知道对方的存在。都能够调用对方的公共属性和方法。

         箭头及指向:双向的关联能够有两个箭头或者没有箭头

         例1:公司和人

        

         将来在Person类中会有属性名为employer,类型为Company ;在Company类中会有一个属性为Employee。类型为Person

         例2:教师和学生

         

      单向关联:

          指一方能够调用对方的属性和方法。

箭头及指向:单向关联是带普通箭头的实心线,指向被拥有者。

例3:学生和某课程

         

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGFvdmlwMTIz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

           一名学生可能要上多门课程,课程是个抽象的东西他不拥有学生

        自身关联(反身关联):

           自己引用自己,带着一个自己的引用。就是在自己的内部有着一个自身的引用。

        聚合关系:

           是总体与部分的关系,且部分能够离开总体而单独存在。

箭头及指向:带空心菱形的实心线,菱形指向总体

           例4:车和轮胎是总体和部分的关系。轮胎离开车仍然能够存在

          

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGFvdmlwMTIz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

         组合关系:

             是总体与部分的关系。但部分不能离开总体而单独存在。

             箭头及指向:带实心菱形的实线,菱形指向总体

             例5:公司和部门是总体和部分的关系。没有公司就不存在部门

            

依赖(Dependency)

             依赖关系是一种使用关系。特定事物的改变有可能会影响到使用该事物的事物,反之不成立。通常情况下。依赖关系体如今某个类的方法使用还有一个类作为參数

             图示:虚线+箭头

             例6:动物与氧气和水的关系

             

泛化(Generalization)

              泛化关系是一种继承关系,是一种特殊/一般关系,特殊元素(子元素)的对象可替代一般元素(父元素)的对象。用这样的方法。子元素共享了父元素的结构和行为。

              图示:实线+空心三角

              例7:动物与猎豹和狼的关系

              

实现(Realization):

              实现是类元之间的语义关系。在该关系中一个类元描写叙述了还有一个类元保证实现的契约。

一个类实现了一个接口。

图示:虚线+空心三角(箭头指向接口)

              例8:遥控器类实现了电视剧的换台接口

             

各种关系的强弱顺序:

               泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖

用一个通俗易懂的UML图来回想一下这几种关系

              

 

          如今对UML的学习仅仅是刚刚開始。对知识的理解还不够充分,假设有错误的地方,还望大牛可以指点一二,万分感谢!

盘点UML中的四种关系的更多相关文章

  1. UML中的四种关系总结

    UML中的关系主要包含四种:关联关系.依赖关系.泛化关系.实现关系.当中关联关系还包含聚合关系和组合关系. 1. 关联关系(Association) 关联关系式一种结构化的关系,是指一种对象和还有一种 ...

  2. 【转】UML中的几种关系详细解析

    UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现 类与类图 1) 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性.操作.关系的对象集合的总称. 2) 在系统中, ...

  3. uml中的几种关系

    这是一堂关于UML基础知识的补习课:现在我们做项目时间都太紧了,基本上都没有做过真正的class级别的详细设计,更别提使用UML来实现规范建模了:本篇主要就以前自己一直感觉很迷糊的几种class之间的 ...

  4. UML中的几种关系(UML Relationships)

    依赖(Dependency) 依赖可以理解为一个类A使用到了另一个类B,而这种使用关系是具有偶然性的.临时性的.非常弱的,但是B类的变化会影响到A:比如某人要过河,需要借用一条船,此时人与船之间的关系 ...

  5. 【菜鸟也疯狂UML系列】——浅析UML四种关系

    在UML中.关系是很重要的.它抽象出对象之间的联系,让对象构成某个联系起来的结构.以下将简要分析一下UML中的四种关系:关联.依赖,泛化,实现. 一.举例罗列 1.关联(Association) 关联 ...

  6. UML中类图的四种关系及其代码实现

    在uml图中 最复杂的也就是泛化,实现.依赖,关联.这四种关系了,假设弄清了这几种关系那么在理解UML图的时候就会变得轻车熟路了! 假设你对着几种关系一点都不熟悉的话能够看一下uml中的四种关系.这篇 ...

  7. UML---UML中的几种关系(依赖,关联,泛化,实现)

    关于设计模式的总结没有落实到代码上,而且设计模式自己确实动手实现的非常少.所以在这一周里,除了看网站开发的视频,着手开始对设计模式进行实现以下.设计模式非常经典,每次看都有不同的收获,写一下自己的收获 ...

  8. UML 之 四种关系

    学习过UML的人都知道,UML之中有九种图和四种关系,今天,我们先来介绍一下这四种关系: 对于我们这些初学者来说,UML之中无非是  关联.依赖.泛化和实现,但是其中,关联和依赖又如何区分?泛化又如何 ...

  9. UML类图中类与类的四种关系图解

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

随机推荐

  1. C-基础:函数返回局部变量

    一般的来说,函数是可以返回局部变量的. 局部变量的作用域只在函数内部,在函数返回后,局部变量的内存已经释放了.因此,如果函数返回的是局部变量的值,不涉及地址,程序不会出错.但是如果返回的是局部变量的地 ...

  2. Java集合系列之HashMap

    概要 第1部分 HashMap介绍 HashMap简介 HashMap 是一个散列表,它存储的内容是键值对(key-value)映射.HashMap 继承于AbstractMap,实现了Map.Clo ...

  3. C++ Simple Message/Logging Class

    在 Qt的源码与Protobuf 的代码中,看到相同的简单消息(日志)输出的类实现,基本思路是使用宏定义,重载临时类对象,调用类方法或者通过析构函数自动调用输出方法,实现消息输出.这里以 Protob ...

  4. [LUOGU] P3004 [USACO10DEC]宝箱Treasure Chest

    第一眼:区间DP,可以瞎搞 f[i][j]=max(sum(i,j)-f[i+1][j],sum(i,j)-f[i][j-1]) 提出来就是f[i][j]=sum(i,j)-min(f[i+1][j] ...

  5. [LUOGU] P2920 [USACO08NOV]时间管理Time Management

    见7.3测试 #include<iostream> #include<algorithm> #include<cstdio> using namespace std ...

  6. CentOS6.8下安装Docker

    原文章链接https://www.cnblogs.com/baolong/p/5743420.html. 由于在自己安装的虚拟机上打开linux终端命令行输入uname -a 以及cat /etc/r ...

  7. 【02】使用Firebug查看和编辑HTML和CSS

    使用Firebug查看和编辑HTML和CSS 描述 在本章节的教程中,我们将讨论如何使用Firebug查看和编辑HTML和CSS. 使用Firebug查看和编辑HTML 在你要查看的元素上右击鼠标然后 ...

  8. STM32F407 独立看门狗 个人笔记

    什么是看门狗 如果程序跑飞了怎么办? 可以用看门狗来监控. 看门狗是: 一个递减的计数器,如果不按时给计数器赋值,计数器的值减到一定程度,就会使系统复位. 也就是说如果程序运行异常,无法正常给计数器赋 ...

  9. LoadRunner中,参数化时Unique取值方式的理解

    LoadRunner中,参数化时Unique取值方式的理解 2012年10月15日 18:10:36 瑞秋 阅读数:10028   在LoadRunner中进行参数化时,Parameter的取值设置有 ...

  10. Selenium学习系列---- FirePath的安装和使用

    在用Selenium编写测试用例的时候,需要对对网页元素上定位,而现在很多的浏览器是可以看到网页上相关的元素信息,可以查看某一个网页的元素信息,通过定位的方式查找元素.另外安装好Selenium ID ...