Android由淺入深學(xué)習(xí)MVP架構(gòu)

這個(gè)Demo使用的是MVP架構(gòu)

既然要說MVP,那不得不提一下MVC

MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,是一種框架模式。

M表示單純的Bean模型

V表示View以及子類

C表示Activity、Fragment以及子類

使用實(shí)例的鏈接:https://github.com/meiyingxiang/AndroidMVPDemo

本篇主要說MVP所以就不在說MVC了

MVP全稱Model-View-Presenter,即模型-視圖-中介者

M表示數(shù)據(jù)層(數(shù)據(jù)庫、文件操作、網(wǎng)絡(luò))

V表示View、Activity以及Fragment及其子類

P表示Presenter中介者

MVP設(shè)計(jì)的目的將Ui層和數(shù)據(jù)層解耦合

流程圖如下:


我這里通過幾種方式一步步教你如何使用MVP

首先最原始的方式比如我們請(qǐng)求接口獲取數(shù)據(jù)


我這里使用的網(wǎng)絡(luò)框架是xUtils。

我們?cè)谶@個(gè)基礎(chǔ)上進(jìn)行優(yōu)化


然后數(shù)據(jù)通過接口回調(diào)出去


最后通過P層回調(diào)


這是一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)請(qǐng)求MVP模型,接下來我們繼續(xù)優(yōu)化,當(dāng)我們退出時(shí),但是網(wǎng)絡(luò)請(qǐng)求還在執(zhí)行程序,會(huì)繼續(xù)執(zhí)行回調(diào)這個(gè)時(shí)候我們需要在程序退出時(shí)執(zhí)行取消綁定于是就有了綁定attachView取消綁定detachView代碼如下:


接著我們可以把綁定和取消綁定放到基類



這樣P層的代碼會(huì)減少,邏輯也很清晰。還可以繼續(xù)優(yōu)化,高度抽象化



最后Activity和Fragment也可以做一個(gè)基類



最后在Activity里面使用



詳細(xì)的Demo鏈接如下:

https://github.com/meiyingxiang/AndroidMVPDemo

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

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

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