uml的四种关系
UML的四种常用关系:
泛化关系、关联关系、实现关系、依赖关系
其中泛化关系是指父类与子类之间的继承关系;
实现关系是指接口与实现类之间的关系;
依赖关系和关联关系的区别如下:
只要存在对象间的交互,无论是控制的还是数据的,两者之间就存在依赖。我们现在说的依赖,它是比关联更弱的关系。
依赖是对象间短暂的一种关系,在这个短暂的关系中,被调用类表现为调用类的局部变量、方法的参数、以及调用类调用被调用类的静态方法,在这些情况下,我们说调用类和被调用类之间就属于依赖关系。
关联是对象间长期的一种关系,在这个长期的关系中,被调用类表现为调用类的引用、或者调用类的属性,在这些情况下,我们说调用类和被调用类之间就属于关联关系。
常见的关联关系有:一对一关系、一对多关系、多对多关系
继承关系和关联关系的区别如下:
与继承关系相比,关联关系的主要优势在于不会破坏类的封装性,而且继承是一种耦合度较大的静态关系,无法在程序运行时动态扩展。
在软件开发阶段,关联关系不会比继承关系减少编码量,但是到了软件维护阶段,由于关联关系使系统具有较好的松耦合性,因此使得系统更加容易维护。当然,关联关系的缺点是比继承关系要创建更多的对象。
uml的四种关系的更多相关文章
- UML 之 四种关系
学习过UML的人都知道,UML之中有九种图和四种关系,今天,我们先来介绍一下这四种关系: 对于我们这些初学者来说,UML之中无非是 关联.依赖.泛化和实现,但是其中,关联和依赖又如何区分?泛化又如何 ...
- UML类图中类与类的四种关系图解
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- 【菜鸟也疯狂UML系列】——浅析UML四种关系
在UML中.关系是很重要的.它抽象出对象之间的联系,让对象构成某个联系起来的结构.以下将简要分析一下UML中的四种关系:关联.依赖,泛化,实现. 一.举例罗列 1.关联(Association) 关联 ...
- UML中类图的四种关系及其代码实现
在uml图中 最复杂的也就是泛化,实现.依赖,关联.这四种关系了,假设弄清了这几种关系那么在理解UML图的时候就会变得轻车熟路了! 假设你对着几种关系一点都不熟悉的话能够看一下uml中的四种关系.这篇 ...
- ZT 类与类之间的四种关系
csdn上一个好贴子:http://bbs.csdn.net/topics/390646332 类与类之间的四种关系1.依赖(Dependency) 类A在类B中作为一个成员函数的参数或者是返回值 ...
- UML中的四种关系总结
UML中的关系主要包含四种:关联关系.依赖关系.泛化关系.实现关系.当中关联关系还包含聚合关系和组合关系. 1. 关联关系(Association) 关联关系式一种结构化的关系,是指一种对象和还有一种 ...
- 盘点UML中的四种关系
生活中,我们既是独立的个体,又通过联系形成各种关系,比方说:朋友.恋人.父子,同学--于是乎,出现了神乎其神的六人定律. 那么在UML中又存在什么样的关系呢?以下我们来梳理一下. 关联(Associa ...
- uml的几种关系总结
UML类图几种关系的总结 在UML类图中,常见的有以下几种关系:泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregati ...
- 【转】UML中类与类之间的5种关系表示
一.继承关系 继承指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父接口)的功能,并可以增加它自己的新功能的能力.在Java中继承关系通过关键字extends明确标识,在设计时一 ...
随机推荐
- 使用log4net 日志输出到数据库MySQL
使用Log4Net的输出日志到MySQL 使用步骤如下: 1. 添加引用Log4Net.dll, mysql.data.dll到工程中 note: mysql.data.dll 版本要高,最好到mys ...
- shape--用代码修改shape的颜色属性
Android里面经常会使用shape来定制一些View的背景,可以修改View的背景颜色,形状等属性 一般情况下,shape都是在xml文件里面写死了,今天遇到一个需求,View的形状是圆角的,但是 ...
- .NET加密方法
SHA1加密: string[] ArrTmp = { Token, timestamp, nonce }; Array.Sort(ArrTmp);//字典排序 string tmpStr = str ...
- DIJ产品系列
- c++ 使用shell命令
#include <iostream> #include <stdio.h> #include <vector> #include <unistd.h> ...
- .html()和.text()的区别
在页面调用接口显示数据的时候,正常情况下.html()和.text()都可以显示数据内容,但是在特殊情况下,比如接口中这个参数为空的时候就表现出差距了,.html()显示的是空白,而.text()显示 ...
- 洛谷P1710 地铁涨价
P1710 地铁涨价 51通过 339提交 题目提供者洛谷OnlineJudge 标签O2优化云端评测2 难度提高+/省选- 提交 讨论 题解 最新讨论 求教:为什么只有40分 数组大小一定要开够 ...
- codis安装手册
本文属原创,转载请注明此信息:http://www.cnblogs.com/robinjava77/p/5465150.html (Robin) codis交流群 240361424 感谢群里各位群 ...
- jquery让滚动条跳到最底部
selector.scrollTop(50000); 添加一个最大的数值: 或者 公式:内容器的高度加上外层容器的padding,再减去外层容器的高度: var tableHeight = $(' ...
- 第一个ruby程序
老实说不是很喜欢去讨论ruby和python的对比,似乎总是把两个语言放在对立的位置上,我觉得没有必要,同样是动态语言,同样是解释型脚本语言,很多特性都是互相影响的,语言本身也在不断进化,我们更应该关 ...