对YTKNetwork的扩展

YTKNetwork简介

YTKNetwork 的基本的思想是把每一个网络请求封装成对象。每一个请求都需要继承 YTKRequest 类,通过覆盖父类的一些方法来构造指定的网络请求。把每一个网络请求封装成对象其实是使用了设计模式中的 Command 模式。

如果你的项目中需要缓存网络请求、管理多个网络请求之间的依赖、希望检查服务器返回的 JSON 是否合法,那么 YTKNetwork 能给你带来很大的帮助。如果你缓存的网络请求内容需要依赖特定版本号过期,那么 YTKNetwork 就能发挥出它最大的优势。

扩展原因

假如我要请求一个菜单下的所有菜品,并将请求到的数据显示到tableView上,一个菜品对应一个cell。我们会封装一个菜品model来存储菜品的所有信息,包括菜品的原材料、价格等等。如果使用YTKNetwork现有的接口,我们只能在ViewController中写一大坨代码将请求到的数据解析成一个一个的菜品model,这样既不简洁也不符合封装的思想。因此我在请求对象这个类YTKRequest中封装了解析数据的方法,将数据的解析放在网络数据层,这样在UI层拿到的就是一个一个解析好的菜品model了。

扩展方法

让网络请求类遵循一个协议,如图1中GEAPIScheduleProtocol,规定每个网络请求类需要实现协议中的解析数据的方法analysisReturnData。

并在YTKNetworkAgent 数据下载完成后调用该block进行数据解析,如图二。

使用示例,如图三。



你可能感兴趣的:(对YTKNetwork的扩展)