OC协议的应用-代理

        先说下代理模式是什么吧


        定义: 为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。



       这么说是不是不能理解,通俗的讲,就是一 些任务自己不去实现,想让别人去实现的时候,就可以指定一个代理,让代理帮你去做。你只需要通知代理去做某某事

        下面举一个例子:肖野老师想去看一场电影, 可是他不能亲自去买票,  至于为什么, 可能是因为他要去练车, 约会没时间, 或者单纯的懒, 正好野哥在课上抓到了班长正在玩手机, 于是将这个任务委托给了班长。

        这时,可以定义一个teacher类(野哥),一个 monitor 类(代理类),monitor类帮助teacher类去买票或者问票价 并且返回消息 给teacher这样的话teacher只需要 调用 monitor就可以获得自己想要的消息 非常方便。

        下面看一下代码:
Teacher.h

声明协议,定义协议方法:询问电影名字,返回NSString类型数据,询问票价,返回NSInteger类型数据,
定义代理属性,为id类型,遵循TeacherDelegate协议, 只要遵循TeacherDelegate协议,都可以成为代理

Monitor.h

在NSObject后加上<TeacherDelegate>m, 表明班长类遵循协议,可以成为代理,可以调用协议里的所有方法
Monitor.m

协议里方法的实现;

下面在main.m里进行验证:

定义一个老师对象肖老师及班长对象,将班长设置为老师的代理,最后肖老师调用buyTicket方法成功问到了电影名及票价,去看了最爱看的喜羊羊

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值