一、基本概念:

类图(Class Diagram): 类图是面向对象系统建模中最常用和最重要的图,是定义其它图的基础。类图主要是用来显示系统中的类、接口以及它们之间的静态结构和关系的一种静态模型。

类图的3个基本组件:类名、属性、方法

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

1. 泛化(Generalization)

【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。例如:老虎是动物的一种,即有老虎的特性也有动物的共性。
【箭头指向】:带三角箭头的实线,箭头指向父类

2. 实现(Realization)

【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现.
【箭头指向】:带三角箭头的虚线,箭头指向接口

3. 关联(Association)

【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。
【代码体现】:成员变量
【箭头及指向】:带普通箭头的实心线,指向被拥有者

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

下图为自身关联:

4. 聚合(Aggregation)

【聚合关系】:是整体与部分的关系,且部分可以离开整体而单独存在。如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。

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

【代码体现】:成员变量
【箭头及指向】:带空心菱形的实心线,菱形指向整体

5. 组合(Composition)

【组合关系】:是整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门是整体和部分的关系,没有公司就不存在部门。

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

【代码体现】:成员变量

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

6. 依赖(Dependency)

【依赖关系】:是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖.
【代码表现】:局部变量、方法的参数或者对静态方法的调用
【箭头及指向】:带箭头的虚线,指向被使用者

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

00 C++ UML类图详解相关推荐

  1. java uml类图教程_Java利器之UML类图详解

    原标题:Java利器之UML类图详解 (点击上方公众号,可快速关注) 来源:伯乐在线专栏作者- Code4Android 如需转载,发送「转载」二字查看说明 前言 UML(Unified Modeli ...

  2. UML类图详解_泛化关系

    泛化其实就是继承关系,还是比较简单的,那么我们就把之前有些问题的博客UML类图重新来实现一次. 依旧是这个图 下面我们来看一个例子 Account.h 1 #include <cstdlib&g ...

  3. 软件设计-UML类图详解说明

    一. UML类图思维导图 二. 详细分析和介绍 下面就从上面的思维导图开始,详细的介绍UML类图! 1. 什么是UML,概念是什么? UML(Unified Modeling Language)中文统 ...

  4. Java利器之UML类图详解

    前言 UML(Unified Modeling Language)中文统一建模语言,是一种开放的方法,用于说明.可视化.构建和编写一个正在开发的.面向对象的.软件密集系统的制品的开放方法.UML展现了 ...

  5. C++ UML类图详解

    文章目录 基本概念: 1. 泛化(Generalization) 2. 实现(Realization) 3. 关联(Association) 4. 聚合(Aggregation) 5. 组合(Comp ...

  6. 【Java】UML类图详解-详细易懂

    基本介绍 统一建模语言(Unified Modeling Language,UML)是用来设计软件的可视化建模语言.它的特点是简单.统一.图形化.能表达软件设计中的动态与静态信息. UML 从目标系统 ...

  7. UML概述及UML类图详解

    引言 UML图有很多种,但是并非必须掌握所有的UML图,才能完整系统分析和设计工作.一般说来,在UML图中,只要掌握类图.用例图.时序图的使用,就能完成大部分的工作.也就是说,掌握UML的20%,就能 ...

  8. 【UML】UML类图详解

    文章目录 1. 类的UML图示 2 类与类之间的关系 2.1 关联关系 2.1.1 单向关联 2.1.2 双向关联 2.1.3 自关联 2.1.4 多重性关联 2.1.5 聚合关系 2.1.6 组合关 ...

  9. idea uml图各符号含义_java利器之UML类图详解(IDEA)

    一.概述 类图(Class Diagram)是面向对象系统建模中最常用和最重要的图,是定义其它图的基础. 类图主要是用来显示系统中的类.接口以及它们之间的静态结构和关系的一种静态模型. 类图不仅用于可 ...

最新文章

  1. 这哥们,第一份工作就年薪30w。。
  2. 开发日记-20190515 关键词 汇编语言(八) MVVM
  3. 哈佛研究人员开发基于折纸造型高精度微型手术机器人
  4. Windows Developer Day - Windows AI Platform
  5. 网站添加页面热力图--百度统计
  6. 1984. 学生分数的最小差值
  7. 移动端APP扁平化UI设计解析
  8. 狗狗币协议发布新版本Dogecoin Core 1.14.3
  9. 关于CDC在非控件类中的使用
  10. 自己应该如何不断学习呢?
  11. 原生拦截WebView页面下载链接跳转空白页问题
  12. 解决 nvcc: command not found
  13. Matlab闪退打不开解决方法
  14. MATLAB的PID调节器
  15. 从此就学会了...笑着哭......
  16. 解决MySQL Connector NET xxxx无法卸载的问题
  17. python数字水印嵌入与提取_基于LSB的图像数字水印实验
  18. 苹果二代TWS无线耳机AirPods调研
  19. 利用手动Ghost工具手动安装系统(U盘)
  20. 开源应用中心 | 无需开发,如何快速搭建一款轻量级CRM系统?

热门文章

  1. 2023年Python数据分析有什么好的课程推荐吗?
  2. hw1-浅谈Dota2设计元素
  3. 【C++】指针深度解析
  4. 神经网络和图神经网络,神经网络的图怎么画
  5. xampp 下载地址
  6. python复数的实部和虚部都是整数嘛_Python数字(Number)
  7. 微信小程序如何直接分享到朋友圈?
  8. Lua(二)数据类型+变量
  9. 误删除了linux的raid1,RAID管理与恢复误删除文件
  10. 全速pdf转换成html转换器v1.0官方版