UML 类之间的几种关系
2019独角兽企业重金招聘Python工程师标准>>>
许久不用uml,又忘记这部分资料了,现给记录下。本资料为引用资料,传送门:http://uml.org.cn/oobject/201104212.asp
1、实现(Realization)
即接口与实现之间的关系,箭头从实现类指向接口
2、泛化(generalization)
继承关系(
is-a
),耦合度最高
的关系,子类继承父类的所有细节,箭头从子类指向父类
3、依赖(dependency)
对象之间
最弱
的一种关系,临时性
的关联。 代码中一般以局部变量
、函数参数
、返回值
建立对于其它对象的调用关系。一个类调用被依赖类中的某些方法而得以完成这个类的一些职责。 使用带箭头的虚线表示,箭头从使用类指向被依赖的类
4、关联(Association)
对象之间一种
引用
关系,通常以类属性
表达。 关联分为一般关联
、聚合关联
、组合关联
。后两种后面介绍。 使用带箭头的实线表示,箭头从使用类指向被关联的类。可以使单向和双向。
5、聚合(Aggregation)
has-a关系,一种不稳定的包含关系。较强于一般关联,有整体和局部的关系,并且没了整体,局部也可单独存在。 使用空心的菱形表示,菱形从局部指向整体。
6、组合(Composition)
contains-a关系,一种强烈的包含关系。组合类负责被组合类的生命周期。一种更强的聚合关系。部分不能脱离整体存在。 在类图中使用实心的菱形表示,菱形从局部指向整体
7、多重性(Multiplicity)
通常在关联、聚合、组合中使用。代表有多少个关联对象存在。 使用
数字
、'..'
、星号
表示
聚合和组合的区别
聚合关系是“
has-a
”关系,组合关系是“contains-a
”关系。 从中文的名称含义上去理解,“聚合”这词,仅表示多个部分汇聚在一起的含义;"组合"这词语包含了整体和部分不可分的含义。 再者,聚合关系中代表部分事物的对象与代表聚合事务的对象的生存期无关,一旦删除聚合对象不一定就删除了代表部分事务的对象。组合中一旦删除了组合对象,同时也就删除了代表事物的对象。
实例分析
联通客户响应OSS。 系统有
故障单
、业务开通
、资源核查
、割接
、业务重保
、网络品质性能
等功能模块。现在我们抽出部分需求做为例子讲解。
- 通知分为一般通知、割接通知、重保通知。这个是继承关系。
- NoticeService和实现类NoticeServiceImpl是实现关系。
- NoticeServiceImpl通过save方法的参数引用Notice,是依赖关系。同时调用了BaseDao完成功能,也是依赖关系。
- 割接通知和故障单之间通过中间类(通知电路)关联,是一般关联。
- 重保通知和预案库间是聚合关系。因为预案库可以事先录入,和重保通知没有必然联系,可以独立存在。在系统中是手工从列表中选择。删除重保通知,不影响预案。
- 割接通知和需求单之间是聚合关系。同理,需求单可以独立于割接通知存在。也就是说删除割接通知,不影响需求单。
- 通知和回复是组合关系。因为回复不能独立于通知存在。也就是说删除通知,该条通知对应的回复也要级联删除。
转载于:https://my.oschina.net/evilgod528/blog/271714
UML 类之间的几种关系相关推荐
- 类与类之间的几种关系
http://www.cnblogs.com/liuling/archive/2013/05/03/classrelation.html 类与类之间的几种关系 一.继承关系 继承指的是一个类 ...
- 【UML】例析UML类图的几种关系
最近在学习UML,别的先不提,英文单词到是学会了不少..既然Rational Rose就是英文版的,索性我就所有东西都按照英文意思来理解,慢慢来,当初学VB的时候我也不是一下子就能记住Label的.. ...
- UML中类之间的几种关系
类之间可能存在以下几种关系:关联(association).依赖(dependency).聚合(Aggregation,也有的称聚集).组合(Composition).泛化(generalizatio ...
- 面向对象类和类之间的几种关系
一.继承关系 继承指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父接口)的功能,并可以增加它自己的新功能的能力.在Java中继承关系通过关键字extends明确标识,在设计时一 ...
- [转] UML类图的几种关系总结
在UML类图中,常见的有以下几种关系:泛化(Generalization),实现(Realization),关联(Association),聚合(Aggregation),组合(Composition ...
- UML类图、6种关系
目录 一,类图 二,类的6种关系 1,泛化 2,实现 3,组合 4,聚合 5,关联 6,依赖 三,总结 一,类图 类图中,每个类由3个部分组成,上面的是类名,中间的是属性,下面的是方法. 属性和方法可 ...
- 浅谈UML类图中类之间的5种关系
什么是UML类图? 类图显示了一组类.接口.协作以及他们之间的关系.在UML中问题域最终要被逐步转化,通过类来建模,通过编程语言构建这些类从而实现系统.类加上他们之间的关系就构成了类图,类图中还可以包 ...
- 快速读懂UML类图,搞懂类之间的6大关系,轻松绘制UML类图
快速读懂UML类图,搞懂类之间的6大关系,轻松绘制UML类图 前言 一.UML类图简介 二.类之间的六大关系及UML类图 1.依赖关系及UML类图表示 2.泛化关系及UML类图表示 3.实现关系及UM ...
- 图文并茂,详细讲解UML类图符号、各种关系说明以及举例
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | duanxz 来源 | https://www ...
最新文章
- Git 常用操作(5)- git clone/git checkout -b/git diff/git push/git pull
- VS013的单元测试去哪里了
- java 固定长度队列_如何彻底搞懂 Java 数据结构?|CSDN 博文精选
- python 3d绘图 汉字_完美解决Python matplotlib绘图时汉字显示不正常的问题
- mongo数据排序和分页显示
- Linux Platform驱动模型(三) _platform+cdev
- 2021年考研经验分享(初试408分)
- 《安士全书》善世第一奇书
- revit二开之获取嵌套族中的子族(过滤族)
- ISP成像算法基础Day1—Python基础
- 前端table打印被截断,如何给每一页都增加表头
- 视频爆炸时代,谁在支撑视频生态网高速运行?
- 最适合小白的编程语言是什么?网友直呼:那当然是Python!
- Appium: Windows系统桌面应用自动化测试(一)
- swfobject1.5
- matlab 中diag函数的用法
- matlab 报错:数组索引必须为正整数或逻辑值。
- Java笔试题库之选择题汇总
- CAD设置在标题中显示完整路径
- IBM的三种异地容灾方案