Objective-C中对象与对象之间的关系

1. 聚合关系(Aggregation)

聚合关系是一种强关联但具有独立生命周期的关系。在聚合关系中,一个对象(容器对象)可以

包含其他对象(成员对象),但成员对象可以独立存在,不依赖于容器对象的存在。这种关系通

常用于表示"拥有"的关系。

复制代码
@interface Person : NSObject
// Person类包含一个Car对象
@property (nonatomic, strong) Car *car;
@end

2. 组合关系(Composition)

组合关系也是一种强关联关系,但与聚合关系不同,成员对象的生命周期依赖于容器对象的存

在。容器对象创建成员对象,并负责管理和销毁成员对象。这种关系通常用于表示"整体与部

分"的关系。

复制代码
@interface Computer : NSObject
// Computer类包含一个Keyboard对象和一个Monitor对象
@property (nonatomic, strong) Keyboard *keyboard;
@property (nonatomic, strong) Monitor *monitor;
@end

3. 继承关系(Inheritance)

继承关系是面向对象编程中最基本的关系之一。通过继承,一个类可以继承另一个类的属性和方

法,并在其基础上进行扩展和修改。子类(派生类)继承了父类(基类)的特征和行为。子类可

以添加新的属性和方法,并重写父类的方法。示例:

复制代码
@interface Animal : NSObject
@property (nonatomic, copy) NSString *name;
- (void)eat;
@end

@interface Dog : Animal
- (void)bark;
@end

4. 关联关系(Association)

关联关系表示两个对象之间的关联,但它们之间没有拥有关系。这种关系是一种松散的、临时的

关系。一个对象可以使用另一个对象提供的功能,但它们的生命周期和责任是独立的。

复制代码
@interface Teacher : NSObject
// Teacher类中关联了一个Student对象
@property (nonatomic, weak) Student *student;
@end

5. 依赖关系(Dependency)

依赖关系表示一个对象在某些方面依赖于另一个对象,但它们之间的关系比较简单和短暂。一个

对象使用另一个对象提供的服务或者调用其方法,但并不拥有对方。

复制代码
@interface Calculator : NSObject
// Calculator类依赖于一个MathUtils对象
@property (nonatomic, strong) MathUtils *mathUtils;
@end
相关推荐
MATLAB代码顾问5 小时前
5大智能算法优化标准测试函数对比(Python实现)
开发语言·python
万粉变现经纪人7 小时前
如何解决 pip install llama-cpp-python 报错 未安装 CMake/Ninja 或 CPU 不支持 AVX 问题
开发语言·python·开源·aigc·pip·ai写作·llama
清风明月一壶酒7 小时前
OpenClaw自动处理Word文档全流程
开发语言·c#·word
其实防守也摸鱼7 小时前
CTF密码学综合教学指南--第五章
开发语言·网络·笔记·python·安全·网络安全·密码学
小郑加油8 小时前
python学习Day12:pandas安装与实际运用
开发语言·python·学习
AC赳赳老秦8 小时前
投标合规提效:用 OpenClaw 实现标书 / 合同自动审核、关键词校验、格式优化,降低废标风险
开发语言·前端·python·eclipse·emacs·deepseek·openclaw
KuaCpp8 小时前
C++面向对象(速过复习版)
开发语言·c++
wbs_scy8 小时前
Linux线程同步与互斥(三):线程同步深度解析之POSIX 信号量与环形队列生产者消费者模型,从原理到源码彻底吃透
java·开发语言
2zcode9 小时前
基于MATLAB元胞自动机(CA)的AZ80A镁合金动态再结晶(DRX)过程模拟
开发语言·matlab·动态再结晶
iCxhust9 小时前
微机原理实践教程(C语言篇)---A001闪烁灯
c语言·开发语言·汇编·单片机·嵌入式硬件·51单片机·微机原理