图中,从左到右分别是依赖、关联、聚合、组合、实现、继承六种关系在UML图中的画法,有箭头,有菱形,有三角,他们为什么这么画呢,之间有什么联系呢,这要从全局来看。

首先,依赖关联关系和聚合组合关系的体现分别是剪头和菱形。依赖关联表示的是两个类之间的联系,而组合聚合表示的是整体和部分的关系。因此,菱形可以看作整体,菱形可以拆分成两个甚至更多的剪头形状,所以菱形指向的则是整体,而剪头指向的是部分。

上图从左到右的耦合度依次加强,在图形中的体现是,实线为强,虚线为弱。实现和虚线就好比纱布和绒布,纱布的空隙大,承受力弱,体现为弱,绒布空隙小,结实,体现为强。虚线有空隙,体现为弱,实线没有空隙,体现为强。同理,实心为强,空心为弱。

有一个重要的问题是,为什么组合聚合关系同时存在菱形和剪头,而泛化关系则没有剪头呢?我觉得起初是有的,可是从UML图的作用出发,就是要用更简洁的图形来更清晰的说明问题。某些图像元素省去也不影响大家对图的理解,那自然要省去了,这就是为什么单向关联有剪头,而双向关联不是两个剪头,而是取消剪头。聚合组合关系需要用菱形和剪头体现整体和部分,所以不得取消剪头。而泛化关系,父类只能有一个,子类可以有N个,所以唯一的箭头要指向共同的父类

UML六种关系图示(过目不忘版)相关推荐

  1. 我所理解的OOP——UML六种关系

    最近由于经常给公司的小伙伴儿们讲一些OOP的基本东西,每次草纸都被我弄的很尴尬,画来画去自己都乱了,有时候也会尝试使用UML表示类之间的关系,但UML从毕业后就再也没接触过了,经常会被小伙伴儿们指出继 ...

  2. UML类图与类间六种关系表示

    1.类与类图 类封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性,操作,关系的对象集合的总称. 类图是使用频率最高的UML图之一. 类图用于描述系统中所包含的类以及它们之间的相互关系,帮助 ...

  3. UML六种箭头代表含义

    UML六种箭头代表含义 1. 泛化 1.1. **概念:** 1.2. **表示方法:**用实线空心三角箭头表示. 2. 实现 2.1. **概念:** 2.2. **表示方法:**空心三角形箭头的虚 ...

  4. UML对象关系与箭头对应表

    对象和类 类是构造对象的模板 封装是与对象有关的一个重要的概念,从形式上来看,封装不过是将数据和行为组合在一个包中,并对对象的使用者隐藏了数据的实现方式.对象中的数据称为实例域,操作数据的过程称为方法 ...

  5. 认识 UML 类关系——依赖、关联、聚合、组合、泛化

    文章目录 1.依赖(Dependency) 2.关联(Association) 3.聚合(Aggregation) 4.组合(复合,Composition) 5.泛化(Generalization) ...

  6. 亿图图示网页版:这两个功能你一定要知道!

    如果我们要把画好的流程图文件发给同事,以前的操作路径是这样的: 先把文件保存到本地,再通过微信/QQ发送给同事,如果文件太大,还得通过邮箱或者网盘的形式进行传输.等同事查看修改完之后,又得将文件原路返 ...

  7. 转载:认识UML类关系——依赖、关联、聚合、组合、泛化

    文章目录 1.依赖(Dependency) 2.关联(Association) 3.聚合(Aggregation) 4.组合(复合,Composition) 5.泛化(Generalization) ...

  8. UML中的六种关系的比较与学习

    通过不断的学习并绘制UML图,整个画图的过程中深刻体会到其核心部分还是理解事物之间的关系,总结六大关系来深入学习,主要关系有六种:继承.实现.依赖.关联.聚合.组合. 区别于联系:         1 ...

  9. UML中的用例间关系图示

    今天应用用例图对一个系统进行了分析,期间需要考虑用例间关系.随找到如下资料. 正文:    用例图主要用来图示化系统的主事件流程,它主要用来描述客户的需求,即用户希望系统具备的完成一定功能的动作,通俗 ...

最新文章

  1. Drainage Ditches - poj 1273(网络流模板)
  2. 前端学习(2511):路径出错
  3. SpringBoot打包成Docker镜像
  4. 用单链表实现一个队列
  5. Linux的实际操作:文件目录类的实用指令(echo head tail)
  6. linux磁盘资源,liunxCPU和内存,磁盘等资源,
  7. hibernate 各种主键生成策略(转)
  8. python爬虫 点击下一页_python爬虫实现获取下一页代码
  9. android基础知识学习(1) TextView属性大全+单行显示长文本
  10. linux下的raid及mdadm的命令详解
  11. 安装SQL SERVER 2000遇到的二个问题
  12. win7鼠标指针主题包_MouseInc 小巧好用的鼠标手势软件
  13. 已解决:虚拟机安装windows server 2012 出现“找不到任何设备驱动程序。请确保安装介质包含正确的驱动程序”
  14. 糖果游戏(齐大第十一届校赛)
  15. STM8S003国产替代 DP32G003 32 位微控制器芯片
  16. Excel如何在姓名与字母之间加空格
  17. 【python练习题3】英雄联盟英雄购买界面+数字炸弹游戏
  18. GVM(OpenVAS)创建扫描报错:Failed to find config ‘d21f6c81-2b88-4ac1-b7b4-a2a9f2ad4663‘解决方法
  19. 浅谈氢能源三大竞争优势
  20. 名词解释atm网络_计算机网络名词解释大全

热门文章

  1. 学习笔记----MATLAB的句柄类和实体值类
  2. 误删u盘文件夹怎么恢复?
  3. windows 2008 终端服务器配置,Windows Server 2008搭建终端服务器
  4. Matlab读取 mp4 视频 Error Creating Source Reader Reason: 不支持给定的 URL 的字节流类型
  5. 射频功率放大器——如何选择合适的射频功率放大器
  6. VLD内存泄漏检测工具
  7. 基于西门子s7-200 smart plc的电梯控制系统的绪论
  8. selenium历史版本下载
  9. Java中集合遍历方式(List、Set、Queue、Deque、Stack、Map)
  10. 腹腔镜取物袋的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告