您的位置:首页 > 移动开发 > IOS开发

iOS 委托Delegate和协议Protocol的理解和应用

2014-10-24 16:31 337 查看
如果做过iOS会发现不论系统框架还是你自己都需要大量使用这两种设计模式,刚刚接触的时候基本不理解,只是会用,知道如果想用tableview得用它的protocol,设置它的delegate,后来学着自己写protocol,创建自己的delegate,现在才开始理解这个设计模式的意义。

我们经常要写一些控制类,类里面我们实现所以和视图的交互,然后我们需要控制器去连接模型,把模型的值反映在视图上,所以,这会用到很多controller中精细的操作,比如告诉controller在刷新数据的时候,要统一把数据的title加上一个前缀或者格式,那么我们写的控制器在执行数据刷新时候是不可能知道用户在刷新时候想干什么的,所以就要用到委托,相当于我在刷新时候委托给用户控制刷新的过程,让用户在刷新时做他想做的我这个controller允许它做的事情,这就是protocol和delegate的意义了。

扩展来说,委托模式本来就是这个作用,我写一个类完成一个大的功能,功能有很多细节我希望让用的人在用的时候决定,我只要保证最后功能完成就OK,这时候我就要声明协议,把可以让用户定制的东西暴露给他,这样他想做额外工作时候就不需要修改我的类,只需要实现这些委托的协议在他自己的类里面然后就OK了,这便是降低耦合性,对扩展开放对修改封闭。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  iOS开发 设计模式 ios