OC-委托模式
来源:互联网 发布:阿里云 centos7 lnmp 编辑:程序博客网 时间:2024/06/04 18:52
概念
委托模式:两个对象间,不能够直接联系,需要一个第三方对象,帮助他们联系,这一种模式,我们称为”委托模式“。
例:一个简单的委托模式
房东—–>委托—>中介—->卖房—>买家
1、先创建两个类HouseHost类和HouseSale类,以及协议文件HouseHostProtocol:在协议文件中我们创建两个方法:
@protocol HouseHostProtocol
-(void)mustSaleHouse;
-(void)payMoney;
@end
2、判断房东是否有向中介提交委托(登记),这里需要在HouseHost类中增加一个判断登记的方法:
@interface HouseHost : NSObject
@property(nonatomic,assign)id delegate;
//登记房子
-(void)registerHouse;
//新增一个方法,表示房东是否收到钱
-(void)receiveMoney;
@end
3、实现登记的方法:
@implementation HouseHost-(void)registerHouse{ NSLog(@"我是房东,我已经将房子登记到中介处"); //如果委托存在,并且遵循指定协议 if (self.delegate&&[self.delegate conformsToProtocol:@protocol(HouseHostProtocol)]) { [self.delegate mustSaleHouse]; [self.delegate payMoney]; }}-(void)receiveMoney{ NSLog(@"我是房东,我收到钱了");}
4、在HouseSale类中实现协议中的方法:先导入头文件
@interface HouseSale : NSObject<HouseHostProtocol>@property(nonatomic,strong)HouseHost *housrHost;@end
实现方法:
@implementation HouseSale-(void)mustSaleHouse{ NSLog(@"我是中介,我跟房东签订了协议,我必须给房东卖房");}-(void)payMoney{ NSLog(@"我是中介,我卖掉房子了,我抽了佣金,剩下的钱给你"); [self.housrHost receiveMoney];}@end
5、在主函数中调试
//分别创建房东对象和中介对象 HouseHost *h1=[HouseHost new]; HouseSale *s1=[HouseSale new]; //设置中介成为房东的代理 h1.delegate=s1; s1.housrHost=h1; //调用房东方法 [h1 registerHouse];
0 0
- OC-委托模式
- OC语言 委托模式
- OC-委托模式
- oc委托代理模式
- OC设计模式-委托模式
- OC——委托模式
- Oc单例模式,委托模式
- OC教程5-委托delegate模式
- OC设计模式之代理(委托)设计模式
- OC中的单例模式和委托模式
- OC中的单例模式和委托模式
- OC中的单例模式和委托模式
- OC学习日记014-单例模式和委托模式
- 【Objective-C】OC中代理(委托)设计模式
- OC协议 委托
- swift 调用oc委托
- 关于OC中的委托
- OC中的委托实例
- 最优对称路径
- Pro Android学习笔记(一五十):拖拽(4):Android3.0及后的方式(下)
- atom 编辑器使用 gbk 编码的诸多问题
- <设计模式10>外观模式
- Java容器
- OC-委托模式
- Java基础之(三十三)Map
- Android: EditText监听内容变化
- 主板各芯片简介
- 错误记录七
- HDU 1176(数塔)
- TestNG套件测试
- JAVA—HashMap底层实现原理,及HashMap解决冲突的方法
- Android 进程保活招式大全