客户端架构采用分层实现。从上到下依次是展示层、中间层、业务层、基础功能层。
一. 展示层
View+Viewcontroller
二. 中间层
Presenter, 负责与业务层通信,拿取数据,给展示层刷新界面
三. 业务层
1. Module 按模块划分, 每个模块有一个ServiceFactory,接受入参,提供各种Service.
2. Service 是对各种Request的封装。所做的工作如下:
a. 调用Request获取数据;b. 缓存数据(可以是sqlite或者文件);c. jsonvalidate,防止脏数据崩溃;
提供的接口,以delegate或者block方式提供给Presenter。按需要,提供成功回调,失败回调和缓存回调。
另外,要注意,有些接口只从缓存中拿。一次Serivce对此类接口,需要和走网络的接口分开处理。
3. RequestAPI,采用YTKNetworking,继承YTKBaseRequest。
四. 基础功能层
YTKNetworking, 与业务无关。对AFNetworking进行封装。非常灵活。