2022.7.15 C++——对象与对象的关系1(依赖、关联和聚合)

本文详细阐述了面向对象设计中的三种关系:依赖、关联和聚合。依赖关系表现为一个对象使用另一个对象的服务,是临时性的。关联关系则是一种静态关系,如教师与课程的关联,体现为对象间的静态结构。聚合关系是整体与部分的关系,如部门与员工,即使整体不存在,部分依然存在。每个关系都有其特定的表示方式和特点,并通过代码示例进行了说明。
摘要由CSDN通过智能技术生成

对象与对象的关系

1. 依赖

程序之间的“依赖”关系主要体现出的是一种使用关系,对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者当一个对象依赖于另一个对象所提供的的服务时,这两个对象之间主要体现为依赖关系。
在类型的设计中,依赖关系主要体现在目标类型的对象,作为当前类型方法的局部对象或者方法的参数类型。
例如:
在这里插入图片描述
学生学习不止有书,还有电脑,代码示例如下:
在这里插入图片描述
在这中间,学生学习依赖书或者依赖电脑或者其他,但是反过来书或者电脑是不依赖学生的,说明依赖是一个单项的。
总结:
①依赖关系是用一个带箭头的虚线表示的,其描述一个对象在运行期间会用到另一个对象的关系,比如上面代码中,学生在学习的时候会用到书或者电脑。与关联关系 不同的是,它是一职中临时性的关系,通常在运行间产生,并且随着运行时的变化,依赖关系也可能发生变化,比如在学生学习的过程中,刚开始是用书的,学习一段时间后,是用电脑的。
②从第一条中可以看出,依赖也有方向,单向依赖,双向依赖。
注意:在最终的代码中,依赖关系体现为类构造方法及类方法的传入参数,箭头的指向为调用关系。
在这里插入图片描述

2. 关联

关联关系是用一条直线表示的,它描述不同类的对象之间的结构关系,是一种静态关系,通常与运行状态无关,一般由常识等因素决定的,它一般用来定义对象之间静态的、天然的结构,所以,关联关系是一种“强关联”的关系。
比如,教师和课程之间就是一种关联关系,学生和学校就是一种关联关系。
关联关系默认不强调方向,表示对象间相互知道,如果特别强调方向,如下图,表示Teacher知道Course,但是Course不知道Teacher
例:
在这里插入图片描述
注意:在最终的代码中,关联对象通常是以成员属性(对象)或引用的形式实现。
例1:弱关联

class Course
{
   
};
class Teacher
{
   
private:
	Course* pc; 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值