最近在學習的網絡框架搭建,在網上看了不少的博客,有著各種各樣的封裝思路,看的實在是激情四射,乘熱打鐵,趕緊把學到的知識記錄下,下面正式開始
關于rxjava,retrofit,okhttp,網上有大量的文章,這里就不做概述,主要是想來談談mvp
MVC
何為MVP,相信大家都能說得出一二,靈活,方便維護,解耦等,在說MVP之前,先來說說MVC
通常我們在開發項目之中,開始之初項目還小,所以使用mvc框架反而更輕松,但是隨著項目不斷迭代,變大很大,這時候mvc反而讓代碼難以維護,所以為了項目以后著想,mvc這種設計模式已經不太適合去開發,這里引用stormzhang一篇文章,里面對mvc有著詳細的介紹:http://mp.weixin.qq.com/s/GuO5wdo2rJgvHH6mErLgqw
MVP
mvp是在mvc的基礎上進行演化而來,它分離了view層和model層,中間通過presenter來進行通信,也就是說各層做各層的事情,互不干擾,最后通過中間人去傳遞,這樣就大大的提高的代碼的可讀性以及維護性,但相對而言,就需要寫很多的類和方法,所以說,如果項目不大,并且迭代不多的情況下,可以考慮用mvc,反之就mvp吧,當然也可以用mvvm,clean,下面開始正文
我們基于mvp模式去設計的,所以我們得創建mvp用到的東西,先看項目結構
并不多,bean目錄主要是存放我們的實體類,model主要是需要做的方法,net就是網絡的一些設置,presenter就是橋梁,service就是rxjava的接口,util是些用到的工具類,view則是展示給用戶,好了有了這些怎么去實現?
其實就是根據之前的封裝而改的,可以參考下我前篇文章《基于RxJava和Retrofit的二次封裝》http://www.lxweimin.com/p/4b7517d497dd
味道還是那個味道,只是請求的方式不太一樣而已
model
可以看到,我們把之前請求數據的類變成了model層,這層主要是跟網絡打交道
presenter
這層是鏈接了model和view層,用戶處理事件時,直接調用doLogin方法,得到結果之后,就回調view來展示給用戶
view
Activity
總體的就是這樣,項目已經上傳github,有興趣的可以下載來看看
https://github.com/ReturnYhh/Rxjava-Retrofit-okhttp-mvp