iOS 委托Delegate和协议Protocol的理解和应用
2014-10-24 16:31
337 查看
如果做过iOS会发现不论系统框架还是你自己都需要大量使用这两种设计模式,刚刚接触的时候基本不理解,只是会用,知道如果想用tableview得用它的protocol,设置它的delegate,后来学着自己写protocol,创建自己的delegate,现在才开始理解这个设计模式的意义。
我们经常要写一些控制类,类里面我们实现所以和视图的交互,然后我们需要控制器去连接模型,把模型的值反映在视图上,所以,这会用到很多controller中精细的操作,比如告诉controller在刷新数据的时候,要统一把数据的title加上一个前缀或者格式,那么我们写的控制器在执行数据刷新时候是不可能知道用户在刷新时候想干什么的,所以就要用到委托,相当于我在刷新时候委托给用户控制刷新的过程,让用户在刷新时做他想做的我这个controller允许它做的事情,这就是protocol和delegate的意义了。
扩展来说,委托模式本来就是这个作用,我写一个类完成一个大的功能,功能有很多细节我希望让用的人在用的时候决定,我只要保证最后功能完成就OK,这时候我就要声明协议,把可以让用户定制的东西暴露给他,这样他想做额外工作时候就不需要修改我的类,只需要实现这些委托的协议在他自己的类里面然后就OK了,这便是降低耦合性,对扩展开放对修改封闭。
我们经常要写一些控制类,类里面我们实现所以和视图的交互,然后我们需要控制器去连接模型,把模型的值反映在视图上,所以,这会用到很多controller中精细的操作,比如告诉controller在刷新数据的时候,要统一把数据的title加上一个前缀或者格式,那么我们写的控制器在执行数据刷新时候是不可能知道用户在刷新时候想干什么的,所以就要用到委托,相当于我在刷新时候委托给用户控制刷新的过程,让用户在刷新时做他想做的我这个controller允许它做的事情,这就是protocol和delegate的意义了。
扩展来说,委托模式本来就是这个作用,我写一个类完成一个大的功能,功能有很多细节我希望让用的人在用的时候决定,我只要保证最后功能完成就OK,这时候我就要声明协议,把可以让用户定制的东西暴露给他,这样他想做额外工作时候就不需要修改我的类,只需要实现这些委托的协议在他自己的类里面然后就OK了,这便是降低耦合性,对扩展开放对修改封闭。
相关文章推荐
- 【iOS开发】协议与委托 (Protocol and Delegate) 实例解析
- 【iOS开发】协议与委托 (Protocol and Delegate) 实例解析(转)
- IOS开发之----协议与委托(Protocol and Delegate) 实例解析
- ios委托delegate与协议protocol
- 简单例子让你很好的理解:协议与委托 (Protocol and Delegate)
- iOS开发】协议与委托 (Protocol and Delegate) 实例解析
- 【iOS开发】协议与委托 (Protocol and Delegate)
- iOS开发 协议与委托(Protocol and Delegate)
- IOS开发之----协议与委托(Protocol and Delegate) 实例解析
- 【iOS开发】协议与委托 (Protocol and Delegate) 实例解析
- 简单例子让你很好的理解:协议与委托 (Protocol and Delegate)
- 协议与委托(Protocol and Delegate)实例解析
- 协议与委托(Protocol and Delegate)实例解析
- 协议与委托(Protocol and Delegate)
- 如何理解 iOS Delegate (委托)设计模式 .
- CBCentralManagerDelegate Protocol 委托协议相关分析
- 协议(protocol) & 委托(delegate)
- 关于delegate 与 protocol 的理解 iOS
- Objective-C ,ios,iphone开发基础:protocol 协议(委托,代理)的声明
- 协议(protocol) & 委托(delegate)