UML类图中类之间的五种关系

news/2025/2/12 20:55:11/

📋 前言

  • 🖱 博客主页:在下马农的碎碎念
  • 🤗 欢迎关注🔎点赞👍收藏⭐️留言📝
  • ✍ 本文由在下马农原创,首发于CSDN
  • 📆 首发时间:2021/12/25
  • 📅 最近更新时间:2021/12/25
  • 🤵 此马非凡马,房星本是星。向前敲瘦骨,犹自带铜声。
  • 📇 系列文章目录: 快点我呀,我是目录
  • 🙏作者水平有限,如发现错误,请留言轰炸哦!万分感谢!

在这里插入图片描述

二十多年前,我在不足二十平米的外婆家小院里蹦跶,感觉世界美好,我早已走遍。
——赵挺《外婆》

在这里插入图片描述

1类图

UML类图是一种用于展示面向对象系统中类、接口、关系和行为的图形化表示法。下面是画UML类图的一些基本步骤:

  1. 确定类的名称:确定需要在类图中包括哪些类,以及它们的名称。
  2. 确定类的属性:确定每个类拥有哪些属性。属性通常包括名称和数据类型,也可以包括其他信息,例如可见性、默认值和约束条件。
  3. 确定类的方法:确定每个类拥有哪些方法。方法通常包括名称、参数和返回值类型。
  4. 确定类之间的关系:确定类之间的关系,如继承、实现、关联、聚合和组合。
  5. 绘制类图:使用UML类图符号绘制类图。类图中的主要符号包括类、接口、属性、方法、继承、实现、关联、聚合和组合。
  6. 添加文本和注释:在类图中添加文本和注释,以帮助读者理解图形表示法。
  7. 审查和修改:检查您的类图是否准确反映了系统的设计,并进行必要的修改。

需要注意的是,UML类图只是一种工具,它不能代替好的设计和编程实践。因此,您应该使用UML类图来帮助您理解系统的设计,并在需要时对其进行调整。

二、UML类图中类之间的关系

2.1 继承关系(Inheritance)

  • 也叫泛化(Generalization)关系

表示一个类从另一个类继承了属性和方法

在UML类图中,继承关系用一个空心三角形箭头连接父类和子类,箭头由子类指向父类。

特点:子类继承了父类的所有属性和方法

例如,Student类是Person的子类,可以表示为:

Person
Student

2.2 实现关系(Realization)

表示一个类实现了一个接口。

在UML类图中,实现关系用一个带空心三角形箭头的虚线连接类和接口,箭头由类指向接口。

特点:一个类只实现了另一个类的一个接口,

«interface»
IPAY
Alipay

2.3 关联关系(Association)

表示类之间的关联关系,是一种拥有的关系, 它使得一个类知道另一个类的属性和方法。

在UML类图中,关联关系用一条直线连接两个类,可以用一个箭头来指示方向。箭头指向被拥有者。箭头可以是单向的也可以是双向的,双向的关联可以有两个箭头或者没有箭头。

People
Car

2.4 聚合关系(Aggregation)

表示一个类包含了另一个类的实例,但是这些实例可以存在于其他的容器中。

通俗讲就是整体与部分的关系,且部分可以离开整体而单独存在。

聚合关系是关联关系的一种,是一种强的关联关系。

在UML类图中,聚合关系用一条带空心菱形的直线连接两个类,菱形指向被聚合的类,即指向整体。

Computer
Keyboard

2.5 组合关系(Composition)

表示一个类包含了另一个类的实例,并且这些实例不能存在于其他的容器中。

其实也是一种整体与部分的关系,但部分不能离开整体而单独存在

组合关系也是一种强的关联关系,是比聚合关系还要强的关系

在UML类图中,组合关系用一条带实心菱形的直线连接两个类,菱形指向被组合的类,即指向整体。

Person
Heart

2.6 依赖关系(Dependency)

表示一个类使用了另一个类,但是这种使用关系不是强制性的,即一个类的变化不会影响到另一个类。

是一种使用关系,一个类的实现需要使用另一个类

在UML类图中,依赖关系用一条带箭头的虚线连接两个类,箭头指向被依赖的类,即被使用的类

Driver
+Driving(car: Car)
Car
+driving()

2.7 关系的区别

2.7.1 实现与继承的区别

  • 含义不同:实现关系表示一个类实现了一个接口,而继承关系表示一个类从另一个类继承了属性和方法。

  • 关系强度不同:实现关系是一种较弱的关系,子类只需要实现接口中定义的方法即可,不需要继承接口中的属性和方法。而继承关系是一种较强的关系,子类继承了父类的全部属性和方法,并可以对其进行修改或扩展。

  • 使用场景不同:实现关系通常用于设计接口,以便在系统中实现多态性,降低代码的耦合度,增加系统的灵活性。而继承关系通常用于实现类的继承和复用,以便在系统中减少重复代码,提高代码的可维护性和可复用性。

  • 表示形式不同:在UML类图中,实现关系用一个空心三角形箭头的虚线连接实现类和接口,而继承关系用一个空心三角形箭头的实线连接子类和父类。


http://www.ppmy.cn/news/812765.html

相关文章

用大数据做空调

互联网与传统行业之争昨日再度引发了热议。“格力生产空调看起来是传统行业,但实际上我们也运用了大数据思维,”董明珠向记者表示。 “虚拟的世界不能支撑人的生命”,董明珠认为当下的生活环境、生活方式的改变就是大数据时代、互联网时代带来…

DIY远程空调遥控(考研已断更)

现在宿舍都有空调 所以可以搞一搞自己动手干一个遥控器在手机里,下课别人飞奔回宿舍回宿舍开空调的时候,你可以冷静的打开空调,回去就能享受清凉!!! 夏日炎炎,这不香嘛!顺便祝董瑞…

【单片机毕业设计】【mcuclub-jj-017】基于单片机的空调的设计

最近设计了一个项目基于单片机的空调系统,与大家分享一下: 一、基本介绍 项目名:空调 项目编号:mcuclub-jj-017 单片机类型:STC89C52 具体功能: 1、通过红外接收头和遥控器,可控制空调 2、遥控…

计算机教室要配备空调吗,孩子们教室里的空调 到底要不要装?能不能装?

已经有家长把装着冰的塑料箱搬进教室。 有温州的家长拍到孩子大汗淋漓上课的照片。 浙江在线5月25日讯(浙江在线记者 梁建伟)大家应该还记得,前段时间杭州高温天猝不及防地来了,教室里没有空调的学生们,面对一波波热浪,用尽解数&a…

暖通空调系统的IoT思考

各种各样的水平和垂直方式进入了物联网市场。 由于对物联网市场的大胆预测,关于物联网市场策略的争论将会继续下去。 不幸的是,炒作会导致神话,而神话会导致混乱。 除非你已经设计、建造和销售了一个物联网产品,否则你几乎无法想…

神码融信金融SBG交付二部VP李先林受邀为第十二届中国PMO大会演讲嘉宾

神码融信金融SBG交付二部VP李先林先生受邀为由PMO评论主办的2023第十二届中国PMO大会演讲嘉宾,演讲议题:多项目管理的心得体会。大会将于8月12-13日在北京举办,敬请关注! 议题简要: 在后疫情时代,金融科技…

LaTex之二元运算符号大全

符号LaTex符号LaTex符号LaTex符号LaTex \pm \pm ∓ \mp ∓\mp \times \times \div \div ∗ \ast ∗\ast ⋆ \star ⋆\star ∘ \circ ∘\circ ∙ \bullet ∙\bullet ⋅ \cdot ⋅\cdot ∓ \mp ∓\mp ∪ \cup ∪\cup ⨿ \amalg ⨿\amalg ⊕ \oplus ⊕\oplus ⊖ \ominus ⊖\omin…

EXCEL慢的解决方法

背景:今天看到一个同事打开EXCEL很慢,需要解决; 检查 1,先看是这个EXCEL慢,还是所有的EXCEL慢;如果只有一个慢;则说明EXCEL程序没有问题; 2,再看这个EXCLE版本&#xff…