Android 手把手教學(xué) MVP 模式 (一)

首先 我們先來(lái)介紹一下

MVP模式

是MVC模式在Android上的一種變體秕噪,要介紹MVP就得先介紹MVC磷杏。在MVC模式中,Activity應(yīng)該是屬于View這一層路星。而實(shí)質(zhì)上偎痛,它既承擔(dān)了View啊犬,同時(shí)也包含一些Controller的東西在里面俊扳。這對(duì)于開(kāi)發(fā)與維護(hù)來(lái)說(shuō)不太友好菊值,耦合度大高了覆糟。把Activity的View和Controller抽離出來(lái)就變成了View和Presenter刻剥,這就是MVP模式。

MVC模式

MVC模式的結(jié)構(gòu)分為三部分滩字,實(shí)體層的Model造虏,視圖層的View,以及控制層的Controller麦箍。其中M層處理數(shù)據(jù)漓藕,業(yè)務(wù)邏輯等;V層處理界面的顯示結(jié)果挟裂;C層起到橋梁的作用享钞,來(lái)控制V層和M層通信以此來(lái)達(dá)到分離視圖顯示和業(yè)務(wù)邏輯層。

Model:Bean實(shí)體類(lèi)话瞧,保存解析實(shí)例數(shù)據(jù)

View:就是我們的UI界面

Controller:是控制VIew與Model的交互

缺點(diǎn):在Android開(kāi)發(fā)中嫩与,Activity并不是一個(gè)標(biāo)準(zhǔn)的MVC模式中的Controller,它的首要職責(zé)是加載應(yīng)用的布局和初始化用戶 界面交排,并接受并處理來(lái)自用戶的操作請(qǐng)求划滋,進(jìn)而作出響應(yīng)。隨著界面及其邏輯的復(fù)雜度不斷提升埃篓,Activity類(lèi)的職責(zé)不斷增加处坪,以致變得龐大臃腫。

MVP模式

MVP框架由3部分組成:View負(fù)責(zé)顯示,Presenter負(fù)責(zé)邏輯處理同窘,Model提供數(shù)據(jù)玄帕。在MVP模式里通常包含3個(gè)要素(加上View interface是4個(gè)):

View:負(fù)責(zé)繪制UI元素、與用戶進(jìn)行交互(在Android中體現(xiàn)為Activity)

Model:負(fù)責(zé)存儲(chǔ)想邦、檢索裤纹、操縱數(shù)據(jù)(有時(shí)也實(shí)現(xiàn)一個(gè)Model interface用來(lái)降低耦合)

Presenter:作為View與Model交互的中間紐帶,處理與用戶交互的負(fù)責(zé)邏輯丧没。

*View interface:需要View實(shí)現(xiàn)的接口鹰椒,View通過(guò)View interface與Presenter進(jìn)行交互,降低耦合呕童,方便進(jìn)行單元測(cè)試

MVP的優(yōu)點(diǎn):

1漆际、模型與視圖完全分離,我們可以修改視圖而不影響模型夺饲;

2奸汇、可以更高效地使用模型,因?yàn)樗械慕换ザ及l(fā)生在一個(gè)地方——Presenter內(nèi)部往声;

3擂找、我們可以將一個(gè)Presenter用于多個(gè)視圖,而不需要改變Presenter的邏輯浩销。這個(gè)特性非常的有用婴洼,因?yàn)橐晥D的變化總是比模型的變化頻繁;

4撼嗓、如果我們把邏輯放在Presenter中柬采,那么我們就可以脫離用戶接口來(lái)測(cè)試這些邏輯(單元測(cè)試)。

下面就讓我們且警;來(lái)就行封裝

首先是BaseView


在實(shí)現(xiàn)的方法中粉捻,進(jìn)行l(wèi)oging加載、和標(biāo)題的設(shè)置 還有請(qǐng)求接口錯(cuò)誤日志


所有Presenter的基類(lèi) view 的綁定在這里主要進(jìn)行了綁定View和銷(xiāo)毀VIew

在這里還可以可以優(yōu)化一下就是View 使用弱引用

public void attachView(V view) {

this.weakView =new WeakReference(view);

}

今天就先到這里? 這里封裝的就是基本的基類(lèi)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末斑芜,一起剝皮案震驚了整個(gè)濱河市肩刃,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌杏头,老刑警劉巖盈包,帶你破解...
    沈念sama閱讀 218,546評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異醇王,居然都是意外死亡呢燥,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)寓娩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)叛氨,“玉大人呼渣,你說(shuō)我怎么就攤上這事∧海” “怎么了屁置?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,911評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)仁连。 經(jīng)常有香客問(wèn)我蓝角,道長(zhǎng),這世上最難降的妖魔是什么饭冬? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,737評(píng)論 1 294
  • 正文 為了忘掉前任帅容,我火速辦了婚禮,結(jié)果婚禮上伍伤,老公的妹妹穿的比我還像新娘。我一直安慰自己遣钳,他們只是感情好扰魂,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著蕴茴,像睡著了一般劝评。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上倦淀,一...
    開(kāi)封第一講書(shū)人閱讀 51,598評(píng)論 1 305
  • 那天蒋畜,我揣著相機(jī)與錄音,去河邊找鬼撞叽。 笑死姻成,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的愿棋。 我是一名探鬼主播科展,決...
    沈念sama閱讀 40,338評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼糠雨!你這毒婦竟也來(lái)了才睹?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,249評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤甘邀,失蹤者是張志新(化名)和其女友劉穎琅攘,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體松邪,經(jīng)...
    沈念sama閱讀 45,696評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡坞琴,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了逗抑。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片置济。...
    茶點(diǎn)故事閱讀 40,013評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡解恰,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出浙于,到底是詐尸還是另有隱情护盈,我是刑警寧澤,帶...
    沈念sama閱讀 35,731評(píng)論 5 346
  • 正文 年R本政府宣布羞酗,位于F島的核電站腐宋,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏檀轨。R本人自食惡果不足惜胸竞,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望参萄。 院中可真熱鬧卫枝,春花似錦、人聲如沸讹挎。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,929評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)筒溃。三九已至马篮,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間怜奖,已是汗流浹背浑测。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,048評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留歪玲,地道東北人迁央。 一個(gè)月前我還...
    沈念sama閱讀 48,203評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像滥崩,于是被迫代替她去往敵國(guó)和親漱贱。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容