這個(gè)Demo使用的是MVP架構(gòu)
既然要說(shuō)MVP靠汁,那不得不提一下MVC
MVC全名是Model View Controller纳击,是模型(model)-視圖(view)-控制器(controller)的縮寫(xiě),是一種框架模式塞琼。
M表示單純的Bean模型
V表示View以及子類
C表示Activity拿诸、Fragment以及子類
使用實(shí)例的鏈接:https://github.com/meiyingxiang/AndroidMVPDemo
本篇主要說(shuō)MVP所以就不在說(shuō)MVC了
MVP全稱Model-View-Presenter,即模型-視圖-中介者
M表示數(shù)據(jù)層(數(shù)據(jù)庫(kù)馆类、文件操作、網(wǎng)絡(luò))
V表示View弹谁、Activity以及Fragment及其子類
P表示Presenter中介者
MVP設(shè)計(jì)的目的將Ui層和數(shù)據(jù)層解耦合
流程圖如下:
我這里通過(guò)幾種方式一步步教你如何使用MVP
首先最原始的方式比如我們請(qǐng)求接口獲取數(shù)據(jù)
我這里使用的網(wǎng)絡(luò)框架是xUtils乾巧。
我們?cè)谶@個(gè)基礎(chǔ)上進(jìn)行優(yōu)化
然后數(shù)據(jù)通過(guò)接口回調(diào)出去
最后通過(guò)P層回調(diào)
這是一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)請(qǐng)求MVP模型,接下來(lái)我們繼續(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鏈接如下: