UML图讲解(关联关系,单向关联,双向关联,自关联,组合关系,依赖关系,继承关系,实现关系)

news2024/11/24 16:53:32

UML图讲解

简介:本文讲解UML图的各种情况下的含义。

简介

百度百科
UML-Unified Modeling Language统一建模语言,又称标准建模语言。是用来对软件密集系统进行可视化建模的一种语言。UML的定义包括UML语义和UML表示法两个元素。
UML是在开发阶段,说明、可视化、构建和书写一个面向对象软件密集系统的制品的开放方法。最佳的应用是工程实践,对大规模,复杂系统进行建模方面,特别是在软件架构层次,已经被验证有效。统一建模语言(UML)是一种模型化语言。模型大多以图表的方式表现出来。一份典型的建模图表通常包含几个块或框,连接线和作为模型附加信息之用的文本。这些虽简单却非常重要,在UML规则中相互联系和扩展。

1.类的表示方式

UML类图由类名,属性,方法构成。
我们以一个Employee类来举例子讲解。
在这里插入图片描述

UML类图中表示可见性的符号+,-,#含义如下:

  • +:表示public

  • -:表示private

  • #:表示protected

属性的完整表示方式格式为: 可见性 名称 :类型 [ = 缺省值]

方法的完整表示方式格式为: 可见性 名称(参数列表) [ : 返回类型]

2. 类与类之间关系的表示方式

2.1 关联关系

简介

  • 关联关系是对象之间的一种引用关系,用于表示一类对象与另一类对象之间的联系,如老师和学生师傅和徒弟丈夫和妻子等。
  • 关联关系是类与类之间最常用的一种关系,分为一般关联关系聚合关系组合关系

关联又可以分为单向关联双向关联自关联

1,单向关联

在这里插入图片描述

UML类图中单向关联用一个带箭头的实线表示。上图表示每个顾客都有一个地址,这通过让Customer类持有一个类型为Address的成员变量类实现。

2,双向关联

在这里插入图片描述所谓双关联就是两个类中互相有对方的部分。

UML类图中,双向关联用一个不带箭头的直线表示。

3,自关联
在这里插入图片描述

自关联在UML类图中用一个带有箭头且指向自身的线表示。上图的意思就是Node类包含类型为Node的成员变量,也就是“自己包含自己”。

2.3 聚合关系

聚合关系是关联关系的一种,是强关联关系,是整体和部分之间的关系。

聚合关系的特点是,成员可以脱离于整体对象独立存在,比如学校与老师的关系,学校包含老师,但是就算学校没了,老师依然可以存在。

UML类图中,聚合关系可以用带空心菱形的实线来表示,菱形指向整体。下图所示是大学和教师的关系图:

在这里插入图片描述

2.3 组合关系

组合表示类之间的整体与部分的关系,但它是一种更强烈的聚合关系。

在组合关系中,整体对象可以控制部分对象的生命周期,一旦整体对象不存在,部分对象也将不存在,部分对象不能脱离整体对象而存在。例如,头和嘴的关系,没有了头,嘴也就不存在了。

UML 类图中,组合关系用带实心菱形的实线来表示,菱形指向整体。下图所示是头和嘴的关系图:

在这里插入图片描述

2.4 依赖关系

依赖关系是一种使用关系,它是对象之间耦合度最弱的一种关联方式,是临时性的关联。在代码中,某个类的方法通过局部变量、方法的参数或者对静态方法的调用来访问另一个类(被依赖类)中的某些方法来完成一些职责。

UML 类图中,依赖关系使用带箭头的虚线来表示,箭头从使用类指向被依赖的类。下图所示是司机和汽车的关系图,司机驾驶汽车:
在这里插入图片描述

2.5 继承关系

继承关系耦合度最大的一种,也是我们最常看见的一种,子类基础父类。

UML类图中,泛化关系带空心三角箭头的实线来表示,箭头从子类指向父类。在代码实现时,使用面向对象的继承机制来实现泛化关系。例如,Student 类和 Teacher 类都是 Person 类的子类,其类图如下图所示:
在这里插入图片描述

2.6 实现关系

实现关系接口与实现类之间的关系。在这种关系中,类实现了接口,类中的操作实现了接口中所声明的所有的抽象操作。

UML类图中,实现关系使用带空心三角箭头的虚线来表示,箭头从实现类指向接口。例如,汽车和船实现了交通工具.

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/90865.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【实时数仓】动态分流的实现源码(反序列化器、配置表、广播流、业务流)

文章目录一 根据MySQL的配置表,动态进行分流1 自定义反序列化器(1)需求分析(2)代码实现2 从配置表中读取数据(1)自定义CDC采集的反序列化器(2)使用FlinkCDC读取配置表数据…

事务的隔离级别

目录 1.1 数据并发问题 1.2 SQL中的四种隔离级别 1.3 MySQL支持的四种隔离级别 1.4 如何设置事务的隔离级别 MySQL是一个 客户端/服务器 架构的软件,对于同一个服务器来说,可以有若干个客户端与之连接,每 个客户端与服务器连接…

简说四种架构的通用思维

一.自顶向下构建架构 ​1.首先定义问题,而定义问题中最重要的是定义客户的问题,特别主要识别出关键问题,关键问题是对客户有体感,能够解决客户痛点,通过一定的数据化来衡量识别出来,关键问题要优先给出解决…

我从“校园小白”到仿真“职场小达人”的CFD学习史

CFD属于CAE技术中比较难的一款软件,主要原因就是流体的特点决定了,因为相比于固体,流体太容易变形了,分子之间的距离比较大。所以,导致了一系列的问题。常常的结果是,忙了半天或者很长,根本得不…

Spring Security自定义认证逻辑实现图片验证码登录

前言 相信大家在网上冲浪都遇到过登录时输入图片验证码的情况,既然我们已经学习了 Spring Security,也上手实现过几个案例,那不妨来研究一下如何实现这一功能。 首先需要明确的是,登录时输入图片验证码,属于认证功能…

【录用案例】计算机电子类SCI,仅1个月15天录用

【期刊简介】IF:1.0-2.0,JCR4区,中科院4区 【检索情况】SCI在检,正刊 【征稿领域】自主传感器网络的高级接口电路及其应用 【参考周期】2-3个月左右 重要时间节点: 2022.12.15 | Accepted 2022.11.22 | 提交返修稿 20…

设计模式之建造者模式

builder desigin pattern 建造者模式的概念、建造者模式的结构、建造者模式的优缺点、建造者模式的使用场景、建造者模式的实现示例、建造者模式的源码分析 1、建造者模式的概念 将一个复杂对象的构建和表示分离,使得同样的创建过程可以得到不同的表示。其主要特点…

一种高复用的组件式安装包制作系统

目录 整体设计 流程描述 文件目录结构设计 产品资源的配置与更新 安装包制作流程 安装包执行流程 整体设计 如下展示了安装包系统的整体结构: 将集群布署可能用到的docker资源,按最小的单元进行整理,以压缩包的形式放于资源库&#xf…

欧姆龙电气元器件要点14讲

对于一个电气工程师来说,不仅仅只是要会PLC、伺服控制、变频器参数调优和总线控制、触摸屏这些大的元件的使用,还有很多种类齐全、功能各异的电气元器件,它们的作用、原理、维护方法、安全要点都要熟记于心,牢牢掌握。 第一章 电气…

艾美捷CpG ODN——ODN 1720 (TLRGRADE)说明书

艾美捷CpG ODN系列——ODN 1720 (TLRGRADE):具有硫代磷酸酯骨架的GpC寡脱氧核苷酸。 艾美捷CpG ODN 丨ODN 1720 (TLRGRADE)化学性质: 序列:5-tccatgagcttcctgatgct-3(小写字母表示硫代磷酸酯键)。 MW:638…

Java中的运算符

算术运算符&#xff1a;&#xff0c; -&#xff0c;*&#xff0c;/&#xff0c;%&#xff0c;&#xff0c;--关系运算符&#xff1a;&#xff0c;!&#xff0c;<&#xff0c;>&#xff0c;<&#xff0c;>逻辑运算符&#xff1a;&&&#xff0c;||&#xff0…

基于STM32的温度控制系统

提示&#xff1a;记录毕设 文章目录前言一、任务书1.1设计(研究)目标:1.2设计(研究)内容:二、代码思路三、硬件四、联系我们五、设计六、框图代码等资料喜欢请点赞哦&#xff01;前言 基于STM32的温度控制系统&#xff0c;主控使用STM32F103ZET6&#xff0c;在正点原子的精英板…

ubuntu18.0 调节显卡GPU涡轮风扇转速

前言&#xff1a; 在炼丹的时候发现涡轮显卡的温度已经很高了85摄氏度&#xff0c;但是涡轮的风扇转速还不到65%&#xff0c;此时显卡计算频率明显已经下降了&#xff0c;所以需要手动调节风扇的转速&#xff0c;让噪音和计算速度处于均衡状态。 一、准备工作 》》安装显卡驱…

html:自定义网页右键菜单

<div id"menu"><divclass"menu-item"data-id"1">功能1</div><divclass"menu-item"data-id"2">功能2</div><divclass"menu-item"data-id"3">功能3</div><…

股票购买接口委托下单c++代码

炒股并非是运气可以驱使的&#xff0c;买股票不是赌博&#xff0c;是一种有风险的经济投资。在股市投资生涯中&#xff0c;掌握一门实战买卖技巧是我们必备的武器&#xff0c;这也是我们能长久在股市投资中得以生存的技法。 其实做股票投资是非常讲究买入和卖出的时机的。一只…

图像风格迁移-DSTN

样式传输的目的是从参考图像中再现具有样式的内容图像。现有的通用风格转换方法成功地以艺术或照片逼真的方式将任意风格传递给原始图像。然而&#xff0c;现有作品所定义的“任意风格”的范围由于其结构限制而在特定领域内受到限制。具体而言&#xff0c;根据预定义的目标域来…

用vscode配置C++3种编译器及多文件编译

末尾附上最终的模板 Vscode开发环境配置 C有很多种编译器&#xff0c;最重要的有三种 GNU的GCC(推荐)微软的MSVCClang/LLVM C的最新标准是C23,各个编译器对C各个标准的支持情况是不同的&#xff1a; C compiler support - cppreference.com 注意主要看C20的支持情况 用Vsco…

校园进销存网站

开发工具(eclipse/idea/vscode等)&#xff1a; 数据库(sqlite/mysql/sqlserver等)&#xff1a; 功能模块(请用文字描述&#xff0c;至少200字)&#xff1a; 功能模块包括&#xff1a;员工模块、手机类型模块、供应商模块、采购模块、客户模块、销售模块、统计模块、库存模块 (1…

2022年的最后一个Win11 Dev预览版本

今日凌晨&#xff0c;微软向广大Win11 Dev用户推送了今年的最后一个版本更新&#xff0c;版本号为25267。根据官方的变化&#xff0c;引入了改变任务栏中可用搜索框样式的设置。此外&#xff0c;此版本还对任务栏、文件资源管理器、设置等进行了各种增强。 该公司还表示&#x…

nacos使用教程及原理简介

一、什么是 Nacos Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集&#xff0c;帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。 Nacos的关键特性包括&#xff1a; 服务发现和服务健康监测动态配置服务动态 DNS 服务服务及其元…