一次讲清:UML类图中的六大关系

简介: 今天给大家分享UML图以及其中最重要的UML类图的几大关系,几分钟交会大家如何制作出UML类图。在UML的静态机制中类图是一个重点,它不但是设计人员关心的核心,更是实现人员关注的核心。

3. UML


  • UML(统一建模语言),是一种用于软件系统分析和设计的语言工具,它用于帮助开发人员进行思考和记录思路的结果。
  • UML本身是一套符号的规定,就像数学与化学符号,这些符号用来表示各个元素之间的关系,比如类、接口、实现、泛化、依赖、组合、聚合等。
  • UML可以画时序图、用例图、类图。


3.1 UML类图


  • 用于描述系统中的类(对象)本身的组成和类(对象)之间各种静态关系。
  • 类之间的关系:依赖、泛化(继承)、实现、关联、聚合与组合。


3.2 类图—依赖关系


  • 只要在类中用到对方,那么他们之间就存在依赖关系,如果没有对方,连编译都通过不了。

类中用到对方的地方:

  • 类的成员属性
  • 方法的返回类型
  • 方法接收的参数类型
  • 方法中使用到

依赖使用虚线箭头,箭头指向依赖者

微信截图_20220609221308.png

3.3 类图—泛化关系


  • 泛化关系实际上就是继承关系,他是依赖关系的特列。
  • 泛化就是继承关系。
  • 如果A继承了B,我们就说A和B存在泛化关系。

泛化使用实线空心箭头,箭头指向继承类

微信截图_20220609221333.png

3.4 类图—实现关系


  • 实现关系就是A类(实现类)实现了B类(接口),他就是依赖关系的特例。

实现关系使用虚线空心箭头,接口指向接口

微信截图_20220609221342.png

3.5 类图—关联关系


  • 关联关系实际上就是类与类之间的联系,他就是依赖关系的特例。
  • 关联具有导航性:即双向关联或单项关联
  • 关联具有多重性:一对多,一对一,多对一,多对多。

关联使用实线箭头(单向关联)或者实线没有箭头(双向关联),箭头指向被调用者

微信截图_20220609221420.png

可以通过上图看出,Person类中使用了IDCard类,但是IDCard类中没有使用到Person类,此时是单项一对一,并且存在箭头,这个箭头指向被调用的类。

而在第二个中,他们之间的类互相调用,所以此时是双向一对一关系,此时不存在箭头。


3.6 类图—聚合关系


  • 聚合关系表示的是整体和部分的关系,整体与部分可以分开。聚合关系是关联关系的特例,所有它具有关联的导航性和多重性。

例如:一台计算机的键盘和显示器是可以从计算机中拆分出来的,使用带空心菱形的实线表示。(空心菱形从部分指向整体)

微信截图_20220609221432.png

聚合使用空心的菱形箭头,箭头指向调用者

微信截图_20220609221509.png

3.7 类图—组合关系


  • 组合也是整体与部分的关系,但是整体与部分不可以分开。(比如人与脑袋,就是组合关系)
  • 如果类中的成员变量不可以与整体类分离,就称为组合。比如上边的鼠标类如果不能与计算机分离,那么就是组合关系。(此时是new的对象,当Computer类加载时,鼠标类也会加载,当计算机类消失的时候,鼠标类也会随之消失,此时存在组合关系)

微信截图_20220609221537.png

  • 组合使用的是实体的菱形箭头表示,箭头指向调用者。

微信截图_20220609221549.png

区分组合与聚合:

  • 人的身体与人不可以拆分的,所以此时就是组合关系。
  • 人的身份证与人是可以拆分的,此时是聚合关系。

网络异常,图片无法展示
|

相关文章
|
2月前
|
uml
UML之类图
UML之类图
50 1
|
2月前
|
数据可视化 Java uml
IDEA中一个被低估的功能,一键把项目代码绘制成UML类图
IDEA中一个被低估的功能,一键把项目代码绘制成UML类图
61 1
|
9月前
|
uml
IDEA使用插件绘制UML类图+PlantUML语法讲解
IDEA使用插件绘制UML类图+PlantUML语法讲解
483 0
|
22天前
|
应用服务中间件 uml
【UML】软件工程中常用图:类图、部署图、时序图、状态图
【UML】软件工程中常用图:类图、部署图、时序图、状态图
63 1
|
2月前
|
设计模式 数据可视化 程序员
软件设计模式:UML类图
软件设计模式:UML类图
|
2月前
|
数据可视化 Java uml
Java的UML类图
Java的UML类图
23 1
|
22天前
|
测试技术 uml
【UML】详解UML类图
【UML】详解UML类图
25 0
|
2月前
|
存储 Java uml
Java-UML类图简介
Java-UML类图简介
28 0
|
2月前
|
Java uml
【开发规范】UML类图
【1月更文挑战第27天】【开发规范】UML类图
|
11月前
|
uml
UML类图的 绘制标准 及 绘制工具
讲解绘制类图的标准,以及如何使用ProcessOn(在线工具 无需下载)轻松绘制类图
204 0