ObjectiveC(9)_代理(委托)设计模式

本文介绍了代理设计模式的概念,强调其简化对象行为和减少耦合度的特点。通过中介找房的例子,详细阐述了代理设计模式在Objective-C中的实现过程,包括租客类、中介人类的创建以及相关协议的定义。
摘要由CSDN通过智能技术生成

代理(委托)设计模式

代理是指一个对象提供机会对另一个对象中的行为发生变化时作出的反应。代理设计模式的基本思想是两个对象协同解决问题,通常用于对象之间的通信。基本特点有:

  • 简化了对象的行为,最小化了对象之间的耦合度
  • 使用代理,一般来说无需子类化
  • 简化了应用程序的开发,既容易实现,又灵活

NSRunloop概念

NSRunloop就是一个事件处理的循环,用来不停的调度工作以及处理输入事件。使用runloop的目的是让你的线程在有工作的时候忙于工作,而没工作的时候处于休眠状态。在应用程序中,不需要创建NSRunloop对象。因为在主线程(包含其他子线程)系统中会自动创建NSRunloop对象。如果你需要访问当前线程中的runloop,可以通过类方法currentRunloop调用。

中介找房代理设计模式的实现

一、需求分析

  • 租客需要找房,委托中介人去找房
  • 中介人负责找房
  • 协议合同规定了租客与中介人的法律效益

二、代码实现
1、 创建租客Person

  • 创建Person.h类
#import <Foundation/Foundation.h>
#import "ApartmentProtocol.h" // 使用当前协议
@protocol PersinDelegate; // 协议的声明,不声明的话就要把协议写在类前面 
@interface Person : NSObject
{
   
@private
    NSString *name;
    id <ApartmentProtocol> _delegate;
    id <PersinDelegate> _delegates;
}
@property (nonatomic,copy) NSString *name;
@property (nonatomic) id <ApartmentProtocol> _delegate; //assign防止循环引用
- (id)initWithName:(NSString *)name withDelegate: (id <ApartmentProtocol>) delegate;
- (void)personFindApartment;
@end
  • 创建Person.m实现类
#import "Person.h"
// 定义私有方法
@interface Person()
- (void) startFindApartment:(NSTimer *)timer;
@end
@implementation Person
@synthesize name
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ruiurrui

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

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

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

打赏作者

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

抵扣说明:

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

余额充值