MVP篇二顺献,與MVC旗国、MVVM的區(qū)別

1、MVC的特點

(1) 用戶可以向view發(fā)送指令注整,再由view直接要求model改變狀態(tài)

(2) 用戶也可以直接向controller發(fā)送指令能曾,再由controller發(fā)送給view

(3) controller起到事件路由的作用,同時業(yè)務(wù)邏輯全部部署在controller

? 可以看出mvc的耦合性還是相對較高肿轨,view可以直接訪問model寿冕,導(dǎo)致3者 之間構(gòu)成回路,因此椒袍,mvp和mvc的主要區(qū)別是驼唱,mvp中的view不能直接訪問model需要通過presenter發(fā)出請求,view和model不能直接通信


2驹暑,MVVM特點

mvvm與mvp非常相似玫恳,唯一的區(qū)別是view和model進行雙向綁定,(data-bingding)岗钩,兩者之間有一方發(fā)生變化則反應(yīng)到另一方上纽窟,而mvp與mvvm的主要區(qū)別是,mvp中的view更新需要通過presenter兼吓,而mvvm則不需要臂港,因為view和model進行了雙向綁定,數(shù)據(jù)的修改回直接反映到view角色上视搏,而view的修改也會導(dǎo)致數(shù)據(jù)的變更审孽,此時,viewmodel的角色需要做的只是業(yè)務(wù)邏輯的處理浑娜,以及修改view或者model的狀態(tài)佑力,mvvm的模式有點像listview和adapter,數(shù)據(jù)集的關(guān)系筋遭,這個adapter就是viewmodel的角色打颤,她與view進行了綁定,又與數(shù)據(jù)集進行了綁定漓滔,當數(shù)據(jù)集發(fā)生變化時编饺,調(diào)用adapter的notifydatasetchanged之后view直接更新,他們之間沒有直接的耦合(這里吐槽一下响驴,很多逗比認為這個模式是mvc)

3透且、MVC、MVP豁鲤、MVVM的區(qū)別

MVC:如下圖秽誊,用戶操作從View操作鲸沮,然后Controller更新Model,更新完后通知Controller锅论,再由Controller更新到用戶界面讼溺。缺點很明顯,三角關(guān)系是相互依存的棍厌,如果需求變化時肾胯,需要改變?nèi)齻€對象,三個交互耘纱,無疑會使事情復(fù)雜化敬肚。



MVP:如下圖。改進MVC的思想是束析,切斷的View和Model的聯(lián)系艳馒,讓View只和Presenter(原Controller)交互,減少在需求變化中需要維護的對象的數(shù)量员寇。假如原來要實現(xiàn)登錄弄慰,現(xiàn)在要實現(xiàn)注冊,登錄和注冊的結(jié)果都是成功或者失敗蝶锋,MVC的邏輯全是在Controller里面實現(xiàn)陆爽,需求改變后,Controller一定要修改扳缕,Model一定要修改慌闭;換成MVP模式,則只用修改Model部分躯舔。

MVC與MVP的主要區(qū)別在于驴剔,MVC中Controller不僅要實現(xiàn)加View與Model的交互,還要實現(xiàn)全部業(yè)務(wù)邏輯粥庄;而MVP把Controller的事件邏輯處理丧失,分離到View和Model部分,只關(guān)注兩者的交互惜互。明顯MVP更利于需求變化修改布讹。

MVVM:如下圖。MVVM關(guān)鍵在于Data Binding训堆,數(shù)據(jù)綁定炒事,View和ViewModel由Data Binding綁定,View 接口的 showData蔫慧、showLoading這些實現(xiàn)方法可以不寫了,通過 Binding 來實現(xiàn)权薯。MVVM理解起來還是復(fù)雜姑躲,不過今后馬上就可以用Data Binding實現(xiàn)Android開發(fā)睡扬。


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市黍析,隨后出現(xiàn)的幾起案子卖怜,更是在濱河造成了極大的恐慌,老刑警劉巖阐枣,帶你破解...
    沈念sama閱讀 222,729評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件马靠,死亡現(xiàn)場離奇詭異,居然都是意外死亡蔼两,警方通過查閱死者的電腦和手機甩鳄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來额划,“玉大人妙啃,你說我怎么就攤上這事】〈粒” “怎么了揖赴?”我有些...
    開封第一講書人閱讀 169,461評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長抑胎。 經(jīng)常有香客問我燥滑,道長,這世上最難降的妖魔是什么阿逃? 我笑而不...
    開封第一講書人閱讀 60,135評論 1 300
  • 正文 為了忘掉前任铭拧,我火速辦了婚禮,結(jié)果婚禮上盆昙,老公的妹妹穿的比我還像新娘羽历。我一直安慰自己,他們只是感情好淡喜,可當我...
    茶點故事閱讀 69,130評論 6 398
  • 文/花漫 我一把揭開白布秕磷。 她就那樣靜靜地躺著,像睡著了一般炼团。 火紅的嫁衣襯著肌膚如雪澎嚣。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,736評論 1 312
  • 那天瘟芝,我揣著相機與錄音易桃,去河邊找鬼。 笑死锌俱,一個胖子當著我的面吹牛晤郑,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 41,179評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼造寝,長吁一口氣:“原來是場噩夢啊……” “哼磕洪!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起诫龙,我...
    開封第一講書人閱讀 40,124評論 0 277
  • 序言:老撾萬榮一對情侶失蹤析显,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后签赃,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體谷异,經(jīng)...
    沈念sama閱讀 46,657評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,723評論 3 342
  • 正文 我和宋清朗相戀三年锦聊,在試婚紗的時候發(fā)現(xiàn)自己被綠了歹嘹。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,872評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡括丁,死狀恐怖荞下,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情史飞,我是刑警寧澤尖昏,帶...
    沈念sama閱讀 36,533評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站构资,受9級特大地震影響抽诉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜吐绵,卻給世界環(huán)境...
    茶點故事閱讀 42,213評論 3 336
  • 文/蒙蒙 一迹淌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧己单,春花似錦唉窃、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至廷痘,卻和暖如春蔓涧,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背笋额。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評論 1 274
  • 我被黑心中介騙來泰國打工元暴, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人兄猩。 一個月前我還...
    沈念sama閱讀 49,304評論 3 379
  • 正文 我出身青樓茉盏,卻偏偏與公主長得像鉴未,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子鸠姨,可洞房花燭夜當晚...
    茶點故事閱讀 45,876評論 2 361

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