网站首页 > 技术教程 正文
UML(Unified Modeling Language,统一建模语言)是一种重要的设计工具。它用于描述软件系统的结构和行为。在 UML 中,有四种常见的关系:依赖、关联、聚合和组合。刚接触UML的同学肯定会有这种疑惑:他们之间有关联与区别(此处停顿20秒供大家思考)。是不是有一种 "只可意会不可言传"的无力感?(真男人[我想静静] )
总的来说,类与类之间由弱到强的关系是:
没关系 > 依赖 > 关联 > 聚合 > 组合
一、依赖(dependency)
简单的理解,就是 类A 使用到了另个一个类B,而这种使用关系是临时的、偶然的、 脆弱的,但是类B会影响到类A;比如你要打车上班,你与被叫到的车之前的关系就是依赖;表现在代码里,就是 类B 作为参数 在类A的某个方法中使用,UML中用带虚线的箭头表示。
二、关联(association)
关联关系 体现的是 两个类之间在语义级别上的一种强依赖关系,比如我和我的同学;这种关系比依赖更强,更稳定,一般是长期性的,双方的关系一般是平等的,关联可以是单向的,也可以是多向的;表现在代码里,就是 类B以类属性的形式出现在类A中,或者类A引用了全局变量类B。
依赖于关联的区别:
依赖是一种弱关联,只要一个类用到另一个类,但是和另一个类的关系不是太明显的时候(比如不影响类的初始化),就可以把这种关系看成依赖,它是一种偶然的关系,;关联是一种强依赖关系,例如老师与学生。
三、聚合(Aggregation)
聚合是一种特殊的关联关系,具有 has-a的语义,它体现的是 整体与部分的关系,此时整体与部分之间是可以分离的,他们具有独立的生命周期,例如公司与员工的关系;表现在代码里,与关联关系相同,只能从语义级别来区分。
四、组合(Composition)
组合也是一种特殊的关联关系,具有 contains-a 的语义,它体现的关联关系比聚合更强,也被称为 强聚合 ;它体现整体与部分不可分割的关系,整体与部分具有相同的生命周期,比如你与你的大脑;表现在代码里,与关联关系一致,只能从语义级别来区分。
聚合与组合的区别:
聚合与组合的差别在于是否可分享!聚合关系中的部分可以与其类分享,例如公司与员工,一位员工可以在多个公司兼职;但是脑袋不能与他人分享。
五、小结
依赖关系是最松散的关系,它只表示类之间的使用关系。关联关系表示更强的结构关系,通常具有多重性约束。聚合关系表示整体与部分的关系,但部分可以独立存在。组合关系表示最强的关系,部分依赖于整体的存在。
- 上一篇: 小学生必备关联词使用技巧详解——1.并列关系
- 下一篇: 如何设置文件关联 如何设置文件关联程序
猜你喜欢
- 2024-10-19 【能力作风建设 · 每日一学】具有关联关系的用人单位混同用工情况下,如何认定劳动关系?
- 2024-10-19 因果关系与相关关系傻傻的分不清?详述因果关系与相关关系的异同
- 2024-10-19 SimpleAdmin手摸手教学之:关联关系
- 2024-10-19 关于企业与集团其他成员关联方关系判断
- 2024-10-19 小三语文句式训练系列七(关联句—因果关系)
- 2024-10-19 关联方关系的认定 关联方关系的认定依据
- 2024-10-19 图解关联方关系 关联方关系图示
- 2024-10-19 公务员考试逻辑填空——关联关系 关联关系例子
- 2024-10-19 小三语文句式训练系列四 (关联句—承接关系)
- 2024-10-19 八项质量管理原则各条款之间的关联关系
你 发表评论:
欢迎- 05-05从virsh当中学习QEMU/KVM启动命令
- 05-05Win10 BCD文件损坏怎么修复?(bcd文件损坏win7)
- 05-05亚马逊春节假期期间的店铺管理设置
- 05-051分钟总结常用k8s常用诊断教程(k8s常见故障)
- 05-05VisiPics重复图片查找软件中文汉化教程
- 05-05微服务的发布实现方式1灰度实现(微服务实现原理)
- 05-05轻松掌握Java多线程 - 第二章:线程的生命周期
- 05-05德拉诺之王邪DK报告:PVE向小测试及分析
- 最近发表
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)