Mvp入門Demo

由于公司一直都是MVC,代碼各種落后,一直想學(xué)習(xí)下MVP,所有就寫了這篇文章,記錄自己的理解與Demo(寫的有問題的地方,歡迎指點(diǎn),謝謝

一個(gè)登錄的源碼

1、M--> Model,對應(yīng)邏輯處理的地方,處理完后,通過Persenter(相當(dāng)于一個(gè)紐帶,連接Model和View的一個(gè)中間橋梁)進(jìn)行回調(diào)。

2、V-->View,就是Activity/Fragment去實(shí)現(xiàn)這個(gè)接口,并且實(shí)現(xiàn)其中這個(gè)View的方法。

3、P-->Persenter,就是Model和View的一個(gè)紐帶,創(chuàng)建Persenter是傳入一個(gè)Activity(這個(gè)Activity其實(shí)就是實(shí)現(xiàn)了View的接口,然后在初始化Persenter的時(shí)候創(chuàng)建一個(gè)Model,此時(shí)Persenter就把View和Model就連接起來了)。

根目錄

以下以一個(gè)登錄為例:

首先Model(主要就是干一件事,那就是登錄)

BaseModel

然后就是Persenter和View

其中persenter如下:

(因?yàn)镻ersenter是一個(gè)紐帶,那么從點(diǎn)擊登錄時(shí),需要將帳號和密碼傳遞到Model中去,所有此時(shí)Persenter就需要一個(gè)login(String userName,String password)的一個(gè)方法),其中l(wèi)oginSucc()和loginFail()都是回調(diào)給View層,VIew會(huì)收到通知,更新Ui。

BasePersenter

其中View如下:

1、點(diǎn)擊登錄時(shí)顯示一個(gè)dialog;

2、登錄失敗時(shí)彈出一個(gè)toast;

3、登錄完成后關(guān)閉dialog;

4、登錄成功后跳轉(zhuǎn)到下一個(gè)Activity的方法。

BaseView

再看看Model的實(shí)現(xiàn)類:

(初始化Model時(shí)傳入一個(gè)Persenter,登錄失敗,成功都進(jìn)行回調(diào)給Persenter)


LoginModel

再看看Persenter:

(初始化Persenter時(shí)傳入一個(gè)View,并且初始化Model),login(String userName,String password)就是顯示dialog和Model調(diào)用登錄,loginSucc()和loginFail(String msg)就回調(diào)給VIew。

LoginPersenter

最后就是Activity:

(oncreat時(shí)就初始化Persenter)


大功告成??!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • ¥開啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個(gè)線程,因...
    小菜c閱讀 7,322評論 0 17
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,639評論 1 32
  • 第一章:Activity生命周期和啟動(dòng)模式 Activity關(guān)閉時(shí)會(huì)調(diào)用onPause()和onStop(),如果...
    loneyzhou閱讀 1,066評論 0 2
  • 給大家推薦幾個(gè)網(wǎng)站,是我工作和生活中經(jīng)常使用的一些網(wǎng)站。 電影資源網(wǎng)站 電影港:http://www.dygang...
    跑來跑去的強(qiáng)子閱讀 22,858評論 1 37
  • 線程封閉 把對象封裝在一個(gè)線程里,只有這一個(gè)線程能看到這個(gè)對象,就算這個(gè)對象不是線程安全的,也不會(huì)出現(xiàn)線程安全的問...
    烏魯木齊001號程序員閱讀 283評論 0 1

友情鏈接更多精彩內(nèi)容