1. 以什么方式交付数据:block、notification、delegate
Block:延长对象释放周期,不建议使用
Notification 在必要时采用用来做跨层传输:登录、登出
delegate,跨层解耦建议delegate + Notification。
尽量减少跨层数据交流的可能性、解耦
统一回调、方便调试维护在业务层交互部分建议统一一种对接手段,block或delegate,限制;灵活性来换取可维护性
2. 交付什么数据:model,dic
建议dictionary,一耗费性能、二造成model爆炸
3. 集约型API还是离散型API
集约型:所有请求都调用一个类
离散型:每个API一个APIManager建议集约型结合离散型,一个总的APIManager,再根据业务分不同SonAPIManager,方便管理、取消
4. 持久化
一般不变接口加持久化、加缓存有效期时间限制:config、首页、筛选条件
5. 重复网络请求
- 允许重复网络请求:要求即时接口
- 取消旧的网络请求:筛选
- 取消新的网络请求:一般接口
6. 网络层怎么校验
- 校验token:登录后获取token,服务器可根据业务要求定义token失效时间,超过时间返回登出code,app退出登录
- 多端登录可设置多个token,可以此限制登录数量