代理模式

本文通过母子关系的比喻,详细解释了代理模式的概念。主要讲述了妈妈(类)无法直接完成某些任务,因此寻找了一个可靠的助手(保姆,代理类)来代替她完成这些任务的过程。通过设置协议(协议类),确保助手能正确执行妈妈交代的任务。本文旨在深入浅出地介绍代理模式的应用场景和工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代理模式就是: A 完成一件事,但是他自己不能实现,于是他找 B 完成这件事,A与 B 之间有个协议,B 遵守协议来完成A交代的事.
举例说明:
// 妈妈类
.h文件
1.协议的声明:
@protocol LookAfter
// 必须实现的方法
@required
- (void)TakeCareBaby():
@end
2.设置代理人对象:保姆
@interface Mother: NSObject
//设置代理人
// 定义一个代理人属性 使得他遵守协议
@property (nonatomic,assign) idnanny;
// 妈妈想干的事.
- (void)play;
@end
.m 文件
// 妈妈类的实现
@implementation Mother
- (void)play
{
// 让代理人调用协议中的方法
// 妈妈 让保姆调用 协议中的方法:照顾宝宝
[self.nanny TakeCareBaby];
// 保姆照顾孩子 自己就可以玩了
NSLog(@“play”);
}

// 保姆类
.h 文件
首先要导入协议所在的类,将协议写在了 Mother类中 导入 Mother

// 代理人签订协议
// 让保姆签订照顾宝宝的协议
@interface Nanny :NSObject
- (void)connection;
@end
.m 文件
@implementation Nanny
- (void) connection
{
// 创建一个妈妈对象
Mother *m = [Mother alloc] init];
// 妈妈的代理人是当前对象 即代理人保姆
m.nanny = self;
// 设置代理人保姆之后 妈妈就可以玩了
[m play];
}

  • (void)LookAfterBaby
    {
    // 代理人遵守协议 实现照顾宝宝的协议
    NSLog(@“照顾宝宝”);
    // 一个简单的打印

}

菜鸟一只,有错误欢迎指出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值