在 UML 类图中,常见的有以下几种关系:泛化(Generalization),实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。

1、泛化(Generalization)

【泛化关系】:是一种继承关系,它指定了子类如何特化父类的所有特征和行为例如:老虎是动物的一种。

【箭头指向】:带三角箭头的实线,箭头指向父类

2、实现(Realization)

【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现。

【箭头指向】:带三角箭头的虚线,箭头指向接口。

3、关联(Association)

关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子。关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。

【代码体现】:成员变量。

【箭头及指向】:带普通箭头的实心线,指向被拥有者。

上图中,老师与学生是双向关联,老师有多名学生,学生也可能有多名老师。但学生与某课程间的关系为单向关联,一名学生可能要上多门课程,课程是个抽象的东西他不拥有学生。

上图为自身关联。

4、聚合(Aggregation)

【聚合关系】:是整体与部分的关系。如车和轮胎是整体和部分的关系。聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。

【代码体现】:成员变量。

【箭头及指向】:带空心菱形的实心线,菱形指向整体。

5、组合(Composition)

【组合关系】:是整体与部分的关系。没有公司就不存在部门 。组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。

【代码体现】:成员变量。

【箭头及指向】:带实心菱形的实线,菱形指向整体。

6、依赖(Dependency)

【依赖关系】:是一种使用的关系,所以要尽量不使用双向的互相依赖。

【代码表现】:局部变量、方法的参数或者对静态方法的调用。

【箭头及指向】:带箭头的虚线,指向被使用者。

各种关系的强弱顺序:泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖

下面这张UML图,比较形象地展示了各种类图关系:

转载于:https://blog.csdn.net/tianhai110/article/details/6339565

(SAW:Game Over!)

UML 类图几种关系的总结相关推荐

  1. UML类图五种关系与代码的对应关系

    UML类图中的五种关系的耦合强弱比较:依赖<关联<聚合<组合<继承 一.依赖关系: (一)说明 虚线+箭头 可描述为:Uses a 依赖是类的五种关系中耦合最小的一种关系. 因 ...

  2. 【UML建模】UML类图几种关系的总结

    转自:http://kb.cnblogs.com/page/129490/ 在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization),关联(As ...

  3. UML类图几种关系的总结,泛化 = 实现 组合 聚合 关联 依赖

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

  4. UML类图几种关系的总结

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

  5. [UML] 类图之间的关系 | 1.关联关系

    [UML] 类图之间的关系 | 1.关联关系 1.关联关系 关联(Association)关系是类与类之间最常用的一种关系,它是一种结构化关系,用于表示一类对象与另一类对象之间有联系 在UML类图中, ...

  6. Java之UML类图的六种关系

    UML类图 UML图概念 UML--Unified modeling language UML(统一建模语言),是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路的结果. ...

  7. UML类图符号 各种关系说明以及举例

    UML中描述对象和类之间相互关系的方式包括:依赖(Dependency),关联(Association),聚合(Aggregation),组合(Composition),泛化(Generalizati ...

  8. 通过简单例子 | 快速理清 UML类图中六大关系

    类与类之间的六大关系 泛化 ( Generalization ) -> 表继承关系 实现 ( Realization ) 关联 ( Association ) 聚合 ( Aggregation ...

  9. 极简设计模式 - UML类图几种线条

    文章目录 前言 1.组合 2.聚合 3.关联 3.1单向关联 3.2双向关联 3.3自关联 4.依赖 5.实现 6.继承(泛化) 总结 参考 前言 设计模式系列目录 中间先夹一篇类图的基本点吧,与人方 ...

最新文章

  1. HDU 2157 How many ways?? 临接矩阵+快速幂
  2. 一大批中文(BERT等)预训练模型等你认领!
  3. Supplier接口练习之获取最大值
  4. linux防火墙阻断目的,基于Linux防火墙的内部邮件监控与阻断系统
  5. Eclipse文件夹导入Jar
  6. 微信小程序提示框提示
  7. linux ping库函数,Linux 常用基本命令 ping ifconfig
  8. 02-对图像进行边界填充
  9. 语音识别学习日志 2019-7-17 语音识别基础知识准备6 {维特比算法(Viterbi Algorithm)}
  10. pytorch修改tensor的维度(修改为任意维度,或单纯的增减维度)
  11. phpMyAdmin安装配置
  12. 52. 配置 Etag (13)
  13. Atitit 发帖机实现(2)---usrQBN2243 文本解析到对象协议规范
  14. 亿图思维导图软件MindMaster Mac版常用快捷键汇总
  15. Android自定义view 滑动开关 支持左右滑动 适用于listview
  16. 笔记-首次参加数据挖掘比赛摸索的经验(赛题为CCF-BDCI2017企业经营退出风险预测)
  17. 裁剪rplidar的扫描数据
  18. 用 Delphi 学设计模式(一) 之 简单工厂篇
  19. 记nexus2升级nexus3数据迁移
  20. 职业规划-数据库工程师(Database Engineer)

热门文章

  1. 实例教程二:短信发送器
  2. PHP实例——产生随机字符串
  3. 软考(5)--软件工程
  4. linux nc命令用法举例
  5. arthas案例:哪个controller处理了请求?每个请求的调用参数和返回值是多少?
  6. spark on k8s准确完整的测试步骤:提交Pi计算程序至k8s集群
  7. Python3 使用推导式统计字符出现次数
  8. Linux df -h查看磁盘使用情况
  9. Python Django创建项目命令
  10. MySQL优化排名语句