IOS开发之代理的设计小技巧
2016-04-17 21:25
267 查看
1、关于代理对象的设计小技巧
在设计一个类,需要通过代理和协议来从外部获取需要的动态的数据。那么在这里设计使用代理会有两种方法。
<第一种方法> 也是比较常见的:
在你设计的类中,声明一个代理属性
然后外部使用的时候
最后根据那个<...Protocol>协议,去遵循这个协议并实现协议的方法。
<第二种方法>在创建这个你要设计的类对象的构造方法中添加一个代理对象的参数,目的就是按照需要,你如果要创建这个对象,你必须添加代理对象。
这样外部在创建这个对象的时候,使用这个方法就暗中强制性的需要你添加这个代理对象
然后因为通过self设置当前对象为代理,如果这个代理对象遵循了协议但是没有实现协议的方法,就会警告提示你要实现协议方法。
总结:第一种方法大家都很熟悉,但是对于第二种方法也是某些特殊的情况必要的设计方法,这个方法也是源自我开发中遇到的一个情况:一个类中需要实时判断当前设备的网络状态,但是如果使用第一种方法设计这个类的话,用户端在使用这个类,可能会忽略设置代理对象,这样是不严谨的,是容易出bug的,所以采用第二种设计方法,可以限制用户端在使用这个对象就必须实现设置代理对象。
具体使用方法一还是方法二,还是要根据实际开发情况来定夺和设计。
在设计一个类,需要通过代理和协议来从外部获取需要的动态的数据。那么在这里设计使用代理会有两种方法。
<第一种方法> 也是比较常见的:
在你设计的类中,声明一个代理属性
然后外部使用的时候
最后根据那个<...Protocol>协议,去遵循这个协议并实现协议的方法。
<第二种方法>在创建这个你要设计的类对象的构造方法中添加一个代理对象的参数,目的就是按照需要,你如果要创建这个对象,你必须添加代理对象。
这样外部在创建这个对象的时候,使用这个方法就暗中强制性的需要你添加这个代理对象
然后因为通过self设置当前对象为代理,如果这个代理对象遵循了协议但是没有实现协议的方法,就会警告提示你要实现协议方法。
总结:第一种方法大家都很熟悉,但是对于第二种方法也是某些特殊的情况必要的设计方法,这个方法也是源自我开发中遇到的一个情况:一个类中需要实时判断当前设备的网络状态,但是如果使用第一种方法设计这个类的话,用户端在使用这个类,可能会忽略设置代理对象,这样是不严谨的,是容易出bug的,所以采用第二种设计方法,可以限制用户端在使用这个对象就必须实现设置代理对象。
具体使用方法一还是方法二,还是要根据实际开发情况来定夺和设计。
相关文章推荐
- 谈谈iOS Animation
- iOS--AFN实现原理
- IOS 把格式化的JSON字符串转换成字典
- iOS工程如何支持64-bit
- iOS开发常用术语————API,SDK,IDE和Xcode概念和关系
- 关于ios播放音频的简单实现
- iOS改变View的Frame
- iOS9如何隐藏各种bar
- iOS-CocoaPods的安装和使用
- ios运行程序崩溃调试
- Mac环境配置 - iOS开发人员 -待续
- 关于ios中的setNeedsDisplay和setNeedsLayout
- iOS应用内支付(IAP)详解
- ios RunTime运用
- iOS开发--Mac下服务器搭建
- ios Category和Extension
- 解决iOS手势冲突问题
- iOS手势冲突问题
- iOS开发-Block
- 【简易版】IOS仿periscope自制狂赞飘桃心