UML——六大关系整理

1、定义

是一种面向对象的建模语言,它是运用统一的、标准化的标记和定义实现对软件系统进行面向对象的描述和建模(百度百科)。

2、六种关系

这六种关系分别为,继承、实现、关联、聚合、组合、依赖。

3、继承(继承是否可以叫泛化?):

表示一般与特殊的关系,通过继承,可以把父类的特性或方法拿过来,而它自身可以扩展其它的特性和方法等等。C#用

冒号表示继承,java用extend关键字表示继承。

例如:猫是动物的一种,即有猫的特性也有动物的共性,Cat:Animal;Cat extend Animal。

UML表示如下:

4、实现:

这是一种接口和类之间的关系,类实现接口中的特征和行为。例如:类C实现了接口Interface1

UML表示如下:

5、关联:

一种强依赖关系,关联就是某个对象会长期的持有另一个对象的引用,而二者的关联往往也是相互的。关联的两个对象

彼此间没有任何强制性的约束,

只要二者同意,可以随时解除关系或是进行关联,它们在生命期问题上没有任何约定。被关联的对象还可以再被别的对

象关联,所以关联是可以共享的(51cto)。例如:ClassA2关联着ClassB2,自身关联ClassA5

UML表示如下:

6、依赖:

依赖指的是一个类依赖另一个类的方法或属性,例如:人要写字,就必须借助比的写的功能。

依赖就是某个对象的功能依赖于另外的某个对象,而被依赖的对象只是作为一种工具在使用,

而并不持有对它的引用(51CTO)。

UML表示如下:

7、聚合:

聚合是关联的一种形式,代表两个类之间的整体/局部关系。聚合暗示着整体在概念上处于比局

部更高的一个级别,而关联暗示两个类在概念上位于相同的级别。

UML关系图中的聚合是强版本的关联。它暗含着一种所属关系以及生命期关系。被聚合的对象

还可以再被别的对象关联,所以被聚合对象是可以共享的。虽然是共享的,聚合代表的是一种更亲密的关系(51CTO)。

释义:书和纸之间具有着一种强烈的所属关系,书是可以分享的,这正如纸和书里的文字都对这本书有着同样的强烈关联。

UML表示如下:

8、组合:

UML关系图中的组合是关系当中的最强版本,它直接要求包含对象对被包含对象的拥有以及包含对象

与被包含对象生命期的关系。被包含的对象还可以再被别的对象关联,

所以被包含对象是可以共享的,然而绝不存在两个包含对象对同一个被包含对象的共享(51CTO)。

UML表示如下:

UML——六大关系整理的更多相关文章

  1. 软件设计之UML—UML中的六大关系

    一.UML中的六大关系 在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation), ...

  2. 设计模式之UML类图六大关系辨析【2】

    六大关系:继承(extends).实现(Realization).依赖(use-a).关联(association).聚合(has-a).组合(强聚合)(Composition). 类与类之间的强弱关 ...

  3. [转] UML中的六大关系

    UML中的六大关系 转自:https://www.cnblogs.com/hoojo/p/uml_design.html 在UML类图中,常见的有以下几种关系: 泛化(Generalization), ...

  4. UML类图介绍&类的六大关系

    UML类图介绍&类的六大关系 官方定义 UML(统一建模语言),是一种用于软件系统分析和设计的语言工具,用于帮助软件开发人员进行思考和记录思路的方式 UML 图形化的语言 基本介绍 UML图: ...

  5. 通过简单例子 | 快速理清 UML 中类与类的六大关系

    关于封面:我想我们都会离开 类与类之间的六大关系 泛化 ( Generalization ) ---> 表继承关系 实现 ( Realization ) 关联 ( Association ) 聚 ...

  6. UML学习归纳整理

    转载自:https://www.jianshu.com/p/83afa19c5096 写在前面 之前在学校比较系统的学习过统一建模语言UML,但长时间没使用遗忘了许多,最近因工作需要,所以对UML重新 ...

  7. 【建模】UML类关系分析

    一.UML类关系分析 1.关联(asociation) 一般是一方拥有另一方对象的指针.箭头的方向是访问方向. 2.聚合(Aggregation)和组合(Composition) 聚合和关联一般不做区 ...

  8. UML六种关系

    UML六种关系 基础之上,并对其进行了扩展.在程序中是通过继承类实现的.比如狗是对动物的具体描述,在面向对象设计的时候一般把狗设计为动物的子类. 表示方法:空心三角形箭头的实线,子类指向父类 实现 概 ...

  9. 单元测试系列之八:Sonar 数据库表关系整理一(续)

    更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 简介:Sonar平台是目前较为流行的静态代码扫描平台,为了便于使用以及自己二次开发,有必要对它的数据库结构进行学习 ...

随机推荐

  1. c# AOP编程:Context与方法拦截

    之前做AgentBooking时候,遇到两个问题比较棘手,一个是异常的传递与捕获:如何可以合理地在层层代码调用中统一传递并统一捕获异常.因为如果有一个做法,可以地方统一处理异常,可以使代码减少很多tr ...

  2. WPF 最简单的TextBox水印

    最简单的TextBox加水印的方法,但是不具有很强的通用性. 如果你只是使用一次,或者用的不多,偷偷懒可以使用. 因为此方法只需要修改TextBox的Template,而不用重写何任代码. 注意: 1 ...

  3. redis的常用公共方法(2)

    之前已经写过一篇redis公共方法的使用(https://www.cnblogs.com/jhy55/p/7681626.html),可是发现在高并发的时候出现 Unknown reply on in ...

  4. [招聘] 上海耐斯特数字招聘3D图形软件工程师

    公司介绍 上海耐斯特数字科技有限公司成立于2018年9月,致力于为中国原创动画.影视行业提供新一代核心技术解决方案和全流程技术服务.公司创始团队拥有国内外领先的行业背景与资源,在DCC软件开发方面具有 ...

  5. 使用math.js进行javascript精确计算

    javascript进行浮点运算会有尾差,比如算个0.1+0.7试试,得到的不是0.8 .这个问题可以使用math.js解决. Math.js是一款开源的JavaScript和Node.js数学库,用 ...

  6. 879. Profitable Schemes

    There are G people in a gang, and a list of various crimes they could commit. The i-th crime generat ...

  7. jquery移动端一个按钮两个事件

    当一个按钮已经有一个事件,如点击,弹窗显示,若还要加个事件,可以用touchstart 如: var videoCover = $("#videoCover");//视频封面 $( ...

  8. [JavaScript] 时间戳格式化为yyyy-MM-dd日期

    function formateDate(timestamp){ var date = new Date(timestamp); var y = 1900+date.getYear(); var m ...

  9. Android studio 安装的安装若干问题

    1.在国内如何更新android sdk? 由于众所周知的某些原因,我们无法直接连接android sdk的更新服务更新sdk,所以可以通过国内的ftp站点把常用的sdk组件如android plat ...

  10. Django的常用方法以及配置

    在setting 中配置能生成  sql log 的内容 LOGGING = { , 'disable_existing_loggers': False, 'handlers': { 'console ...