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

1.泛化(Generalization)

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

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

2.实现(Realization)

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

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

3.关联(Association)

关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子。

关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。

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

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

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

上图为自身关联。

4.聚合(Aggregation)

【聚合关系】:是整体与部分的关系。如车和轮胎是整体和部分的关系。

聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。

【代码体现】:成员变量

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

5.组合(Composition)

【组合关系】:是整体与部分的关系。例如,没有公司就不存在部门。

组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。

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

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

6.依赖(Dependency)

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

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

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

7.各种关系的强弱顺序:

泛化= 实现> 组合> 聚合> 关联> 依赖

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

原文地址:http://blog.csdn.net/tianhai110/article/details/6339565

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

  1. UML类图、6种关系

    目录 一,类图 二,类的6种关系 1,泛化 2,实现 3,组合 4,聚合 5,关联 6,依赖 三,总结 一,类图 类图中,每个类由3个部分组成,上面的是类名,中间的是属性,下面的是方法. 属性和方法可 ...

  2. 【UML】例析UML类图的几种关系

    最近在学习UML,别的先不提,英文单词到是学会了不少..既然Rational Rose就是英文版的,索性我就所有东西都按照英文意思来理解,慢慢来,当初学VB的时候我也不是一下子就能记住Label的.. ...

  3. UML类图的6大关系

    <小酌重构系列>已经完成了大约1/3了,在这些文章中,我使用了一些简单的类图来描述重构策略.在之后的文章中,我可能会借助稍微复杂一些的UML类图来介绍.但是在此之前,我觉得有必要先介绍一下 ...

  4. UML类图属性和相关关系

    UML类图 1. 类属性的可见性 描述类的属性的可见性: UML中,可见性分为4级 public 公用的 :用+ 前缀表示 ,该属性对所有类可见 protected 受保护的:用 # 前缀表示,对该类 ...

  5. UML类图中的六大关系:关联(单向、双向、自关联)、聚合、组合、依赖、继承、实现

    一.类的属性的表示方式 在UML类图中,类使用包含类名.属性(field) 和方法(method) 且带有分割线的矩形来表示,比如下图表示一个A类,它包含c.d两个属性,以及methodA方法. 那么 ...

  6. UML类图中类之间的关系,聚合,组合,依赖总结

    下面我就根据下面这个图来讲解一下UML类图. 类图 首先,看动物那个矩形框,他就表示为一个类(Class).类图分为三层: 第一层显示类的名称 如果是抽象类,就用斜体表示 第二层显示类的特性,通常是字 ...

  7. 图文并茂,详细讲解UML类图符号、各种关系说明以及举例

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | duanxz 来源 | https://www ...

  8. 详解:UML类图符号、各种关系说明以及举例

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | duanxz 来源 | https://www ...

  9. UML 类之间的几种关系

    2019独角兽企业重金招聘Python工程师标准>>> 许久不用uml,又忘记这部分资料了,现给记录下.本资料为引用资料,传送门:http://uml.org.cn/oobject/ ...

最新文章

  1. 如何在XAF中显示自定义窗体和控件
  2. java的循环中try catch的一点小技巧
  3. 计算机科学期刊拒稿概率大吗,发表论文初审过了复审被拒概率高不高
  4. Ambari 架构(三)Ambari Server 架构
  5. 《人月神话》(P11)为舍弃而计划
  6. gbk编码的简介以及针对gbk文本飘红截断原理以及实现
  7. Asp.Net使用Yahoo.Yui.Compressor.dll压缩Js|Css
  8. 华为中兴腾讯拿下国家科学技术进步奖,中南大学一作奖项总数全国第三
  9. GRBL学习笔记2--grbl Arduino烧写
  10. 使用apache mod_env模块保存php程序敏感信息
  11. WPS简历模板的图标怎么修改_个人简历模板集锦,简历自我评价怎么写?
  12. ISO语言代码(ISO-639)与国家代码(ISO-3166)
  13. Unity3D学习之旅7-RPG游戏-更新与踩坑实录
  14. vlookup函数使用过程
  15. Mac ps 2021 3D功能无法使用问题,怎么办?
  16. 贾扬清:把生命浪费在有意思的事情上
  17. ROS学习记录(二)阿克曼转向车运动学模型及在gazebo中搭建仿真环境
  18. Kubernetes学习笔记十:部署Mysql、Redis和Shardingshere
  19. 京东 探索星球瓜分 1000 亿京豆 脚本
  20. 【PTA题目】7-4 打折 (5 分)

热门文章

  1. Vue.js 技术揭秘学习 (3) render
  2. RunTime 入门
  3. (转)光照模型及cg实现
  4. 100m和1000m网线的常见制作方法
  5. javascript定时器及Date对象
  6. [你必须知道的.NET]第二十七回:interface到底继承于object吗?
  7. 8.2 动力系统的贝叶斯推理
  8. mysql query plan_MySQL Execution Plan--IN查询计划(2)
  9. 1.6 三维卷积-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
  10. 一起学nRF51xx 1 - GPIO