网络模块优化方案(1)——封装网络框架

来源:互联网 发布:淘宝贷款记录在哪里看 编辑:程序博客网 时间:2024/06/03 19:57

这篇文章是在去年写的,当时带领团队对旗下两款app进行了重构。由于业务需求较多,所以我们采用了两套方案同时进行:

1、业务模块:在功能迭代的同时进行重构,主要工作是代码优化、提取封装、依赖整理等。

2、基础模块:对于之前顽疾较多较重的模块进行完全重写,独立在业务之外,独立开发独立测试通过后再替换到主项目中。

其中网络模块就是重构的首要入手点,之前网络这块没有进行彻底封装,全部散落这各个activity和fragment中,后期维护扩展愈来愈困难。

所以为了实现模块化,减少模块耦合;减少重复代码,加快网络请求的开发。我们需要将网络框架进行二次封装,将业务层和网络框架进行隔离。如下图



具体做法:

(1)在网络请求进行发送(get/post)时进行封装统一处理。

这样就可以应付在所有的请求中添加同一参数、cookie、header等,或本地缓存等其他的统一处理的行为。

具体处理是将网络框架的post、get再封装一层方法,对外公开使用封装后的方法,这样就可以在封装方法层中做处理。

(2)在网络请求返回(回调)时进行统一处理后再以自定义接口回调

这样可以对所有请求返回进行统一处理,比如进行统一拦截、解析数据、处理公共数据等。并且可以在自定义的回调中添加url、请求参数等信息供业务处理。

具体处理是创建一个实例类实现网络框架自带的回调接口,所有的的网络请求都注册这个实例类回调。然后自定义一个网络回调接口,业务层发送请求时注册的是自定义的回调。最后在实例类的方法中进行统一处理后,再去调业务层注册的自定义回调。



示例代码:


原创粉丝点击