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

📋 前言

  • 🖱 博客主页:在下马农的碎碎念
  • 🤗 欢迎关注🔎点赞👍收藏⭐️留言📝
  • ✍ 本文由在下马农原创,首发于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类图中,实现关系用一个空心三角形箭头的虚线连接实现类和接口,而继承关系用一个空心三角形箭头的实线连接子类和父类。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

在下马农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值