MVP in Android 理解嘴办,僅做記錄

一,概述

Android開發(fā)中买鸽,我們熟悉使用MVC的開發(fā)模式涧郊,如果在較大的項目中,經常會發(fā)現(xiàn)本該布局文件中的數(shù)據(jù)綁定的操作眼五,事件處理的代碼都在Activity中妆艘,造成了Activity既像View又像Controller,對于代碼的重用與理解或對于后來開發(fā)者會造成一些困擾看幼,最近看到了一個MVP開發(fā)模式的demo批旺,給人耳目一新的感覺,MVP結構模式的使用讓代碼的清晰度有了很大的提升诵姜,在這里總結了下自己的理解汽煮。

首先在這里我們可以對這兩種模式進行對比:

MVC開發(fā)模式:1.View:對應于布局文件;

2.Model:業(yè)務邏輯和實體模型;

3.Controllor:對應于Activity暇赤。

仔細想想這個View對應于布局文件心例,其實能做的事情特別少,基本上存在的意義不大翎卓,有名無實的感覺契邀。下面我們在看下MVP模式:

1.View 對應于Activity,負責View的繪制以及與用戶交互

2.Model 依然是業(yè)務邏輯和實體模型

3.Presenter 負責完成View于Model間的交互

二失暴,兩種模式的對比與區(qū)別

這里我們用一組模型圖對比下:

MVC模式圖

MVP模式圖

其實最明顯的區(qū)別就是坯门,MVC中是允許Model和View進行交互的,而MVP中很明顯逗扒,Model與View之間的交互由Presenter完成古戴。還有一點就是Presenter與View之間的交互是通過接口的,既降低耦合也方便進行單元測試矩肩。還有很多其他的優(yōu)點就不一一解釋了现恼,具體我們看下代碼。

三黍檩,項目中的體現(xiàn)

1.先看下項目結構

項目結構圖

2.效果圖如下

效果圖

如何去實現(xiàn)這種模式叉袍,關鍵在于我們要仔細分析界面與邏輯之間的聯(lián)系,在大腦中構建一個關聯(lián)輪廓刽酱,也就是一種思維導圖喳逛。簡單介紹下自己的使用

(1)首先我們需要一個UserBean,用來保存用戶信息

數(shù)據(jù)bean類

(2)再來看看View接口棵里,根據(jù)需求分析润文,View可以對ID、FirstName殿怜、LastName這三個EditText進行讀操作典蝌,對FirstName和LastName進行寫操作,由此來定義IUserView接口:

IUserView接口

(3)Model接口头谜,Model也需要對這三個字段進行讀寫操作骏掀,并存儲在某個載體內,根據(jù)需求來定義IUserModel接口:

Model接口

(4)Presenter就能通過接口與View及Model進行交互了:

Presenter交互

(5)UserActivity實現(xiàn)

圖1

圖2

可以看到,View只負責處理與用戶進行交互柱告,并把數(shù)據(jù)相關的邏輯操作都交給了Presenter去做截驮。而Presenter調用Model處理完數(shù)據(jù)之后,再通過IUserView更新View顯示的信息末荐。具體可參考github.com/VectorYi/MVPSample.git

以上僅是個人對于MVP架構模式的一點總結侧纯,還請多多指正。

參考文章:blog.csdn.net/lmj623565791/article/details/4659610

? ? ? ? ? ? ? ? ? ? github.com/zhengxiaopeng/Rocko-Android-Demos/tree/master/android-mvp

? ? ? ? ? ? ? ? ? ? zhengxiaopeng.com/2015/02/06/Android%E4%B8%AD%E7%9A%84MVP/

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末甲脏,一起剝皮案震驚了整個濱河市眶熬,隨后出現(xiàn)的幾起案子妹笆,更是在濱河造成了極大的恐慌,老刑警劉巖娜氏,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拳缠,死亡現(xiàn)場離奇詭異,居然都是意外死亡贸弥,警方通過查閱死者的電腦和手機窟坐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來绵疲,“玉大人哲鸳,你說我怎么就攤上這事】” “怎么了徙菠?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長郁岩。 經常有香客問我婿奔,道長,這世上最難降的妖魔是什么问慎? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任萍摊,我火速辦了婚禮,結果婚禮上如叼,老公的妹妹穿的比我還像新娘冰木。我一直安慰自己,他們只是感情好薇正,可當我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布片酝。 她就那樣靜靜地躺著囚衔,像睡著了一般挖腰。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上练湿,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天猴仑,我揣著相機與錄音,去河邊找鬼肥哎。 笑死辽俗,一個胖子當著我的面吹牛,可吹牛的內容都是我干的篡诽。 我是一名探鬼主播崖飘,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼杈女!你這毒婦竟也來了朱浴?” 一聲冷哼從身側響起吊圾,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎翰蠢,沒想到半個月后项乒,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡梁沧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年檀何,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片廷支。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡频鉴,死狀恐怖,靈堂內的尸體忽然破棺而出恋拍,到底是詐尸還是另有隱情砚殿,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布芝囤,位于F島的核電站似炎,受9級特大地震影響,放射性物質發(fā)生泄漏悯姊。R本人自食惡果不足惜羡藐,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望悯许。 院中可真熱鬧仆嗦,春花似錦、人聲如沸先壕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽垃僚。三九已至集绰,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間谆棺,已是汗流浹背栽燕。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留改淑,地道東北人碍岔。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像朵夏,于是被迫代替她去往敵國和親蔼啦。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內容