mvp和 mvvm 整理

mvp簡述

  • mvp的結(jié)構(gòu)


    image.png
  • mvp各個模塊職責(zé)
  1. V
    保存視圖狀態(tài),包含UI的具體操作等,如刷新,旋轉(zhuǎn),展示 ,以及與用戶的交互
  2. m
    保存數(shù)據(jù)信息,包括DB,網(wǎng)絡(luò)數(shù)據(jù)處理,以及附帶的各種其他數(shù)據(jù)操作
    3.p
    起到m和v的鏈接作用,一些除v和m以外的邏輯操作,實際上是一個mananger 的角色

mvvm

  • 什么是mvvm

  • 整體架構(gòu)


    image.png
  1. model
    Repository及其下方就是model了。Repository負(fù)責(zé)提取和處理數(shù)據(jù)。數(shù)據(jù)來源可以是本地數(shù)據(jù)庫,也可以來自網(wǎng)絡(luò),這些數(shù)據(jù)統(tǒng)一有Repository處理,對應(yīng)隱藏數(shù)據(jù)來源以及獲取方式??偠灾甿odel就是和數(shù)據(jù)以及數(shù)據(jù)操作相關(guān)的模塊

  2. ViewModel
    ViewModel作為View和Model等其他模塊的鏈接件 ,viewmodel持有l(wèi)ivedata等數(shù)據(jù),viewmodel 本身也應(yīng)該有生命周期的意識 。實際上主要的邏輯都在viewmodel里

  3. view
    view就是視圖層通常包含 activtiy, fragment,還包括viewdatabinding,通常由view 持有viewmodel

  4. databinder
    databinder其實也是mvvm實現(xiàn)的關(guān)鍵。Android中的數(shù)據(jù)綁定技術(shù)由DataBinding和LiveData共同實現(xiàn)。當(dāng)Activity/Fragment接收到來自ViewModel中的新數(shù)據(jù)時(由LiveData自動通知數(shù)據(jù)的改變),將這些數(shù)據(jù)通過DataBinding綁定到ViewDataBinding中,UI將會自動刷新。

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

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

  • 本文章已授權(quán)微信公眾號郭霖(guolin_blog)轉(zhuǎn)載。 本文章講解的內(nèi)容是MVC、MVP、MVVM以及使用MV...
    譚嘉俊閱讀 4,484評論 0 5
  • 1.MVVM模式分為Model,View,ViewModel 三個部分 (1).Model:數(shù)據(jù)層,包含數(shù)據(jù)實體和...
    豎起大拇指閱讀 50,033評論 1 45
  • 本文由玉剛說寫作平臺提供寫作贊助,版權(quán)歸玉剛說微信公眾號所有原作者:AndroFarmer版權(quán)聲明:未經(jīng)玉剛說許可...
    李想_androfarmer閱讀 1,831評論 0 10
  • 久違的晴天,家長會。 家長大會開好到教室時,離放學(xué)已經(jīng)沒多少時間了。班主任說已經(jīng)安排了三個家長分享經(jīng)驗。 放學(xué)鈴聲...
    飄雪兒5閱讀 7,788評論 16 22
  • 今天感恩節(jié)哎,感謝一直在我身邊的親朋好友。感恩相遇!感恩不離不棄。 中午開了第一次的黨會,身份的轉(zhuǎn)變要...
    余生動聽閱讀 10,798評論 0 11

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