Android之MVP架構

MVP(Model View Presenter)模式是由MVC模式發展而來的,在現在的Android程序開發中顯得愈來愈重要。本篇文章簡單討論了MVP模式的思想。 html

啥是MVP android

MVP模式的主要思想是將程序的業務邏輯從表現層分離出來,理想狀況下,MVP模式可使得相同的邏輯擁有徹底不一樣且可互換的views。 git

爲啥要用MVP github

在Android實際開發過程當中,咱們會遇到這樣的問題:Android中的activity與界面展現和數據訪問機制耦合度很是高,既負責頁面組件的展現,又負責處理業務邏輯。一個極端的例子就是混合適配器CursorAapter,它既是view的一部分,卻又帶有cursor,應該放在數據訪問層。 數據庫

爲了應用程序具備好的擴展性和可維護性,咱們須要有好的架構分層設計。假如之後咱們再也不從數據庫中取數據,而是從網絡中獲取數據,那麼咱們只好從新作一個view出來。 網絡

MVP分層架構可使views與數據源相互分離,將業務邏輯從activity中分離出來,它將應用程序至少分爲三個不一樣的層次,從而能夠分開獨立地調試程序。 架構

怎麼用MVP spa

MVP的架構並非很死板的,不一樣的開發人員能夠根據本身工程的須要,將MVP的思想運用在本身的項目中。 設計

The presenter 調試

Presenter做爲View層和Model層的中間層,它負責根據業務邏輯從model層中檢索數據並將其格式化,返回給View層。可是,它不像傳統的MVC那樣,它還負責響應你與View的交互。

The View

view層經常由activity來實現(也可使Fragment,View等),它每每持有一個presenter的引用。一般狀況下,經過引用注入的方式DI,能夠完美地將presenter提供給view層調用。(例子Dagger)View層所要作的就是,經過該引用來調用presenter中的方法來完成對用戶在界面操做的相應。

The model

model層是用來完成數據的提供服務。在一個分層架構良好的應用程序中,model層僅僅是做爲業務邏輯層訪問數據的一個入口。文章:Uncle Bob clean architecture

 

總結

在Android中將業務邏輯與界面分離並非一件很容易的事兒,經過MVP的架構思想,咱們試圖減小activity中的代碼量,這樣作會使得咱們的程序擴展性和可維護性更好。GitHub上關於MVP有一個很好的例子an MVP example on Github

相關文章
相關標籤/搜索