阅读笔记
原文链接
网络设计方案需要考虑的问题主要有两个
- 以什么样的方式将数据交付给业务层
- 交付什么样的数据给业务层
交付方式选择
大多数App在网络层所采用的方案主要集中于这三种:Delegate,Notification,Block。
KVO和Target-Action目前还很少使用。
建议以Delegate为主,Notification为辅的原因有
- 尽可能减少跨层数据交流的可能,限制耦合
- 统一回调方法,便于调试和维护
- 在跟业务层对接的部分只采用一种对接手段(在我这儿就是只采用delegate这一个手段)限制灵活性,以此来交换应用的可维护性
不建议用Block的原因是
- block很难追踪,难以维护
- block会延长相关对象的生命周期
- block在离散型场景下不符合使用的规范
交付什么样的数据
可以用协议model实现多样化(我觉得还是直接使用字典吧)