您的位置:首页 > 理论基础 > 计算机网络

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

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

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

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

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

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



具体做法:

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

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

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

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

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

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



示例代码:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息