半分鐘了解mvp模式「mvp開發模式是什麼意思」

MVC 模式

Model-View-Controller ,模型-視圖-控制器模式

  • Model:針對業務模型,建立的數據結構,Model 與 View 無關,而與業務有關。
  • View:Android 中一般採用 XML 文件描述。
  • Controller:Android 中通常在 Activity,Fragment 中處理。

MVC 整體的實現過程可以概括為:

Controller 來操作 Model並將結果返回給 View 展示

簡單圖解 MVP、MVC 、MVVM 模式

一圖勝前言.png

從圖上可以看出 MVC 模式的缺點是 View 定義不夠清晰,xml 文件屬於 View 但是 Activity 、Fragment 中也有 View 的操作,為了解決這個問題,因此出現了 MVP 模式。

MVP 模式

Model-View-Presenter,是 MVC 的演化版本。

  • Model:主要提供數據的存取功能
  • View:Android 中一般是 Activity,Fragment,xml 文件
  • Presenter:作為 View 和 Model 之間的橋樑。

MVP 整體的實現過程可以概括為:

Model 定義好存取接口,Presenter 通過接口調用 Model 中的接口獲取到結果,最後通過 View 接口去展示具體 View

簡單圖解 MVP、MVC 、MVVM 模式

image.png

從上圖可以看出 MVP 解決了 MVC 中 View 定義不清晰的問題,同時劃清了 Model 和 View 的界限,View 不能直接訪問 Model,Model 也是不能直接訪問 View。

MVP 的處理大部分都是通過接口去實現的,這也會導致代碼的邏輯層級較深,所以又出現了一個架構模式 MVVM。

MVVM 模式

了解的不是很深入,寫的可能有誤,參考即可。

Model-View-ViewModel,和 MVP 類似,但是使用 ViewModel 替換了 Presenter 。

ViewModel :View 和 Model雙向綁定,View 發生改變後 ViewModel 會通知 Model 跟隨改變,同理 Model 改變 ViewModel 也會通知 View 跟隨改變。

簡單圖解 MVP、MVC 、MVVM 模式

image.png

MVVM 雖然解決了 MVP 中代碼層級深度過深問題,但是需要使用 DataBinding,代碼層面也不易理解。

假裝總結一下

在實際開發中,採用 MVP 模式已經足夠了,雖然類文件會變多一些,但是能夠降低代碼之間的偶爾同時便於維護,這就夠了。

對於 MVP 的學習,入門例子推薦 谷歌 GitHub 上的 TODO-MVP 例子。

如果想深入可以再把 TODO 系列看完,聽說 MVP + RxJava + Dagger2 很香?

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/323341.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2025-01-12 12:46
下一篇 2025-01-12 12:46

相關推薦

發表回復

登錄後才能評論