UML类图是什么

article/2025/8/18 19:02:19

一、什么是UML类图

先引用一段百度百科的定义

统一建模语言(Unified Modeling Language,UML)是用来设计软件的可视化建模语言。它的特点是简单、统一、图形化、能表达软件设计中的动态与静态信息。
类图是描述系统中的类,以及各个类之间的关系的静态视图。能够让我们在正确编写代码以前对系统有一个全面的认识。类图是一种模型类型,确切的说,是一种静态模型类型。类图表示类、接口和它们之间的协作关系。

哈哈,相信你看来这个定义,肯定是迷惑的,但如果用一句话来概述

UML类图就是用来描述类与类之间,类与接口之间,类的成员变量之间的一种关系图。

如果还不明白,那我们简单的看一下UML类图长啥样
在这里插入图片描述
这就是一张简单的UML图,上面主要看,它是不是有四个框框,这表示接口和实现类,他们之间是不是还有线条连接,这些线条,就是通过图形的方式,向我们描述这几个接口和类之间的关系。

二、为什么要去了解UML类图

1、作为一名合格的开发,在写代码的时候,肯定是每天都和对象打交道,了解类与类之间的关系,类与方法之间的关系,才能设计出好的代码结构,如何去理清楚类之间的关系,那画UML类图肯定是你的首选,没毛病
在这里插入图片描述

2、不过大多数开发的时候,其实可能不会面临太复杂的类关联,有时候不用画图也能理清楚,but,如果你想进一步提高技术,肯定会去接触到设计模式,在对设计模式深入的学习中,会面临大量的UML类图,如果你连UML类图都看不懂,那学设计模式的时候,小心被劝退。

下图是设计模式之禅中关于工厂方法模式的案例的类图,你能猜出这些符号什么意思么?
设计模式之禅

三、类图表示法

3.1 类的表示方式

在UML类图中,类使用包含类名、属性(field) 和方法(method) 且带有分割线的矩形来表示,比如下图表示一个Employee类,它包含name,age和address这3个属性,以及work()方法。
在这里插入图片描述
属性/方法名称前加的加号和减号表示了这个属性/方法的可见性,UML类图中表示可见性的符号有三种:

+:表示public
-:表示private
#:表示protected

3.2 类与类之间关系的表示方式

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

3.2.1 关联关系

1、单向关联
在UML类图中单向关联用一个带箭头的实线表示。上图表示每个顾客都有一个地址,这通过让Customer类持有一个类型为Address的成员变量类实现,必然应该顾客对象,关联一个地址对象。
在这里插入图片描述

2、双向关联
在UML类图中,双向关联用一个不带箭头的直线表示。上图中在Customer类中维护一个List,表示一个顾客可以购买多个商品;在Product类中维护一个Customer类型的成员变量表示这个产品被哪个顾客所购买。
一个顾客可以买多种商品,商品可以被顾客购买。
在这里插入图片描述

3、自关联
自关联在UML类图中用一个带有箭头且指向自身的线表示。上图的意思就是Node类包含类型为Node的成员变量,也就是“自己包含自己”。比如说链表,就是一个非常好的自关联的例子。
在这里插入图片描述

3.2.2 聚合关系

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

聚合关系也是通过成员对象来实现的,其中成员对象是整体对象的一部分,但是成员对象可以脱离整体对象而独立存在。例如,学校与老师的关系,学校包含老师,但如果学校停办了,老师依然存在。

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

2.3.3 组合关系

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

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

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

2.3.4 依赖关系

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

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

2.3.5 继承关系

继承关系是对象之间耦合度最大的一种关系,表示一般与特殊的关系,是父类与子类之间的关系,是一种继承关系。

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

在这里插入图片描述

2.3.6 实现关系

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

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


http://chatgpt.dhexx.cn/article/J8tk3mEh.shtml

相关文章

UML介绍及怎么看UML图

最近做毕业设计,用到了libcitygml开源库,获取到一张citygml的UML图,就顺便简单了解一下它! 一、简介 UML(Unified Modeling Language),直接翻译就是统一建模语言。 二、UML的作用 UML可以帮助我…

什么是UML?为什么要用UML?

什么是UML? UML是Unified Model Language的缩写,中文是统一建模语言,是由一整套图表组成的标准化建模语言。 为什么要用UML? 通过使用UML使得在软件开发之前, 对整个软件设计有更好的可读性,可理解性,从而降低开发风险。同时,也能方便各个开发人员之间的交流。 UML…

【UML】UML几种图的绘制

08年9月入学,12年7月毕业,结束了我在软件学院愉快丰富的大学生活。此系列是对四年专业课程学习的回顾,索引参见:http://blog.csdn.net/xiaowei_cqu/article/details/7747205 UML几种图的绘制 UML是Unified Modeling Language&…

浅谈UML的概念和模型之UML九种图

目录: UML的视图 UML的九种图 UML中类间的关系 上文我们介绍了,UML的视图,在每一种视图中都包含一个或多种图。本文我们重点讲解UML每种图的细节问题: 1、用例图(use case diagrams) 【概念】描述用户需…

UML——概述(什么是UML?UML有什么作用?面向对象技术)

目录 什么是UML? UML能帮我们做什么? 什么是建模? 为什么要建模? 为什么要可视化建模? 建模的原理(原则) UML的基本构造块 UMl中事物有哪些? 面向对象技术 什么是UML&#…

详细说明UML类图是什么?

作者:亿图图示 链接:https://www.zhihu.com/question/419312525/answer/1535413984 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 UML类图,UML中的一种重要图形,是在…

UML详细讲解

本文是搜集整理学习使用,信息来源:gd_沐辰 - 博客园 (cnblogs.com) 1.UML概述 1.1.什么是UML 统一建模语言(UML)是一种通用的可视化建模语言,可以用来描述、可视化、构造和文档化软件密集型系统的各种工件。 UML是…

什么是UML,UML类图

1.什么是UML? UML是统一建模语言,是一种可视化的面向对象建模语言,是一种用来对真实世界物理进行建模的标准标记,用图形方式表现典型的面向对象系统的整个结构。它的作用域不局限于支持面向对象的分析与设计,还支持从需…

什么是uml?

相信你可能建立过以木块为基础的建筑模型,建立过解决实际问题的数学模型,学过一个系统的物理模型,听说过UML建模,但是什么是UML呢? 学习了几天的UML,昨天师傅大体问了我UML是什么,由什么构成&am…

[UML 扫盲]什么是UML?

文章目录 一、UML 是什么?二、UML 与 面向对象三、UML 基本要素四、UML 常见图 概述 UML 是统一建模语言(Unified Modeling Language)的缩写。UML 提供了标准通用的图形化设计语言,使得在构建计算机应用时,开发团队的成…

大数据学习(3)

大数据学习(3) 1 Hive-SQL-DML语句1.1 Hive SQL Load 加载数据语句1.1.1 Load功能1.1.2 Load语法规则1.1.3 Load 语法实验1.1.3.1 Load Data From Local FS1.1.3.2 Load Data From HDFS1.1.3.3 Overwrite选项 1.2 Hive SQL Insert 插入数据语句1.3 Hive …

如何学习大数据分析

上面有很多关于BOT的信息:这并不是嗡嗡作响。归根结底,BINO数据已经成为每个行业的驱动力,这充分说明了利用大数据分析的最大优势。但是,仅B此字不只是因为我们知道而改变了业务。更重要的是,大数据分析分析系一直是开…

大数据分析怎么学习

大数据分析从业虽然有难度,但大数据分析岗的薪酬高、发展潜力好,很多人们想转行做大数据分析,朝着大数据分析方向去发展。那么,大数据分析怎么学习?学习哪些内容呢? 第一,可视化分析,事实上&am…

大数据学习路线,如何学习大数据?

声明:本文转至http://blog.csdn.net/yuexianchang/article/details/52468291 1.Linux基础和分布式集群技术 学完此阶段可掌握的核心能力: 熟练使用Linux,熟练安装Linux上的软件,了解熟悉负载均衡、高可靠等集群相关概念&#xff…

机器学习-大数据

模式识别 性能好,算法,经验 实际和模型的差距太大

大数据学习(1)-大数据概述

文章目录 目录大数据产生背景大数据概念大数据影响大数据应用大数据关键技术大数据产业大数据,云计算,物联网关系云计算物联网大数据,物联网,云计算三者之间联系 目录 大数据产生背景 三次信息化浪潮 根据IBM前首席执行官郭士纳…

2021年全新大数据学习路线图,(含入门到精通项目学习免费教程哦)

大数据教程,大数据学习,大数据学习路线图, 今天就给大家分享2021年全新的大数据学习教程哦! 2021年黑马程序员全新的大数据学习路线图分享给大家,大家可以按照这个大纲来学习,自学也可哦! 第一…

大数据——学习路线

学习大数据首先我们要学习Java语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后。下面是大数据相关的技术 Hadoop 这是现在流行的大数据处理平台几乎已经成为大数据的代名词,所以这个是必学的。Hadoop里面包括几个组件HDF…

怎样进行大数据的入门级学习?

大数据在刚出来的时候,人们表现的非常乐观,以至于对它持有非常高的期望,和普遍的追捧。 不过只要有数据在,大数据就不会过时。随着上游的数据规模持续增长,大数据在未来一定会扮演重要角色。因此,市场需求…

当我说转行大数据工程师时,众人笑我太疯癫,直到四个月后......

【不要错过文末彩蛋】 申明: 本文旨在为【大数据自学者|大数据专业学生|工资低的程序员(Java/Python等)】提供一个从入门到入职的的大数据技术学习路径,不适合5年以上大数据工程师的进阶学习。 前言: 一、个人介绍 …