网络模块优化方案(1)——封装网络框架
這篇文章是在去年寫的,當時帶領團隊對旗下兩款app進行了重構。由于業務需求較多,所以我們采用了兩套方案同時進行:
1、業務模塊:在功能迭代的同時進行重構,主要工作是代碼優化、提取封裝、依賴整理等。
2、基礎模塊:對于之前頑疾較多較重的模塊進行完全重寫,獨立在業務之外,獨立開發獨立測試通過后再替換到主項目中。
其中網絡模塊就是重構的首要入手點,之前網絡這塊沒有進行徹底封裝,全部散落這各個activity和fragment中,后期維護擴展愈來愈困難。
所以為了實現模塊化,減少模塊耦合;減少重復代碼,加快網絡請求的開發。我們需要將網絡框架進行二次封裝,將業務層和網絡框架進行隔離。如下圖
具體做法:
(1)在網絡請求進行發送(get/post)時進行封裝統一處理。
這樣就可以應付在所有的請求中添加同一參數、cookie、header等,或本地緩存等其他的統一處理的行為。
具體處理是將網絡框架的post、get再封裝一層方法,對外公開使用封裝后的方法,這樣就可以在封裝方法層中做處理。
(2)在網絡請求返回(回調)時進行統一處理后再以自定義接口回調
這樣可以對所有請求返回進行統一處理,比如進行統一攔截、解析數據、處理公共數據等。并且可以在自定義的回調中添加url、請求參數等信息供業務處理。
具體處理是創建一個實例類實現網絡框架自帶的回調接口,所有的的網絡請求都注冊這個實例類回調。然后自定義一個網絡回調接口,業務層發送請求時注冊的是自定義的回調。最后在實例類的方法中進行統一處理后,再去調業務層注冊的自定義回調。
示例代碼:
?
?
總結
以上是生活随笔為你收集整理的网络模块优化方案(1)——封装网络框架的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Acticity切换时ScrollVie
- 下一篇: Android更新平台架构方案