MVC,MVP,MVVM三種架構(gòu)模式

一、MVC

MVC
  • MVC是model/view/controller。分別負(fù)責(zé)數(shù)據(jù)處理、視圖界面展示和業(yè)務(wù)邏輯。view接受用戶的交互,將請求傳遞給controller處理,controller將請求發(fā)送給model進(jìn)行數(shù)據(jù)更新,最后傳給view進(jìn)行展示。
    • 缺點:activity既是controller又是view,代碼復(fù)雜、測試維護(hù)困難;view和model存在隅合

二、MVP

MVP
  • MVP是為解決MVC的缺點,將model和view進(jìn)行解隅、通過presenter進(jìn)行通信。view接收用戶交互后,將請求傳給presenter進(jìn)行處理,p傳給m,m再傳回p通知v進(jìn)行展示
    • 優(yōu)點:減少activity的臃腫;解隅合;可以將presenter用于多視圖而不改變presenter的邏輯;presenter與view通過接口交互,便于單元測試
    • 缺點:presenter除了業(yè)務(wù)邏輯外,還有大量view->model->view的手動邏輯,造成presenter笨重,維護(hù)困難;presenter修改需要同步修改所有實現(xiàn)類

三、MVVM

MVVM
  • MVVM是model,view,viewmodel,presenter升級成viewmodel,實現(xiàn)view和model的雙向綁定,即dataBinding,viewmodel負(fù)責(zé)處理業(yè)務(wù)邏輯。(因為viewmodel和model綁定,所以model/view變動只改以防另一方都能及時更新到)
    • 優(yōu)點:model 和view分離更徹底,減輕activity壓力,便于測試等等
    • 缺點:對于簡單項目,大材小用;過大的項目內(nèi)存開銷大影響性能;頁面追蹤不方便
?著作權(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)容

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