当前位置: 首页 > article >正文

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

http://www.kler.cn/a/229889.html

相关文章:

  • 双十一线上服务调用链路追踪SkyWalking实战分析
  • HiISP(一)
  • OceanBase 大数据量导入(obloader)
  • 爬虫与反爬-Ja3指纹风控(Just a moment...)处理方案及参数说明
  • Spring Boot林业产品推荐系统:用户指南
  • 网络安全拟态防御技术
  • 基于DFS、BFS解决迷宫问题
  • 【Java数据结构】单向 不带头 非循环 链表实现
  • Langchain ZERO_SHOT_REACT_DESCRIPTION的使用
  • springboot war包部署 和jar包部署
  • Linux中共享内存(mmap函数的使用)
  • 【技术预研】StarRocks官方文档浅析(4)
  • Linux命令:traceroute命令
  • re:从0开始的CSS学习之路 3. CSS三大特性
  • 计算机网络自顶向下Wireshark labs-HTTP
  • AD高速板常见问题和过流自锁
  • c语言游戏实战(3):三子棋
  • 私有化部署一个吃豆人小游戏
  • 深度学习的进展:人工智能时代的里程碑
  • 算法训练营day23(补),回溯3
  • C#在既有数组中插入另一个数组:Array.Copy方法 vs 自定义插入方法
  • 点云transformer算法: FlatFormer 论文阅读笔记
  • 【软考设计师笔记】一篇文章带你了解数据库
  • 单片机和 ARM 的区别
  • 汽车零部件MES系统实施方案
  • 2024.2.5 vscode连不上虚拟机,始终waiting for server log