博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IOS开发之代理的设计小技巧
阅读量:6416 次
发布时间:2019-06-23

本文共 549 字,大约阅读时间需要 1 分钟。

 

 

1、关于代理对象的设计小技巧

在设计一个类,需要通过代理和协议来从外部获取需要的动态的数据。那么在这里设计使用代理会有两种方法。

<第一种方法> 也是比较常见的:

  在你设计的类中,声明一个代理属性

  

  然后外部使用的时候

  

  最后根据那个<...Protocol>协议,去遵循这个协议并实现协议的方法。

<第二种方法>在创建这个你要设计的类对象的构造方法中添加一个代理对象的参数,目的就是按照需要,你如果要创建这个对象,你必须添加代理对象。

  

  这样外部在创建这个对象的时候,使用这个方法就暗中强制性的需要你添加这个代理对象

  

  然后因为通过self设置当前对象为代理,如果这个代理对象遵循了协议但是没有实现协议的方法,就会警告提示你要实现协议方法。

总结:第一种方法大家都很熟悉,但是对于第二种方法也是某些特殊的情况必要的设计方法,这个方法也是源自我开发中遇到的一个情况:一个类中需要实时判断当前设备的网络状态,但是如果使用第一种方法设计这个类的话,用户端在使用这个类,可能会忽略设置代理对象,这样是不严谨的,是容易出bug的,所以采用第二种设计方法,可以限制用户端在使用这个对象就必须实现设置代理对象。

具体使用方法一还是方法二,还是要根据实际开发情况来定夺和设计。

 

转载地址:http://dnpra.baihongyu.com/

你可能感兴趣的文章
Eclipse配置实现定制登录界面
查看>>
Rsync 学习笔记
查看>>
Yii2中加入yii2-admin模块
查看>>
mysql linux下高可用架构的简析及主、从复制的实战(一)
查看>>
运维经验分享:故障处理方法总结
查看>>
6、继承与面向对象设计
查看>>
我的友情链接
查看>>
Android 之活动任务堆栈详解
查看>>
Delphi 的消息机制浅探一
查看>>
linux 配置了zookeeper,启动maven工程卡住
查看>>
Apache下载apk 文件后缀变 .txt问题
查看>>
java虚拟机与Dalvik虚拟机
查看>>
yum离线缓存安装
查看>>
org.hibernate.AnnotationException: No identifier specified for entity
查看>>
系统自动安装及基本故障排除、sudo详解
查看>>
linux svn checkout ssl令牌失效问题
查看>>
centos7设置服务为开机自启动(以crond.serivce为例)
查看>>
View的layer属性设置
查看>>
Visual Build Professional自动编译
查看>>
使用redis进行基于shiro的session集群共享
查看>>