Android MVP模式開發

一.什麼是MVP

    MVP是模型(Model)、視圖(View)、主持人(Presenter)的縮寫,分別表明項目中3個不一樣的模塊。html

 模型(Model):負責處理數據的加載或者存儲,好比從網絡或本地數據庫獲取數據等;java

 視圖(View):負責界面數據的展現,與用戶進行交互;android

 主持人(Presenter):至關於協調者,是模型與視圖之間的橋樑,將模型與視圖分離開來。git

    View與Model並不直接交互,而是使用Presenter做爲View與Model之間的橋樑。其中Presenter中同時持有Viwe層以及Model層的Interface的引用,而View層持有Presenter層Interface的引用。當View層某個界面須要展現某些數據的時候,首先會調用Presenter層的某個接口,而後Presenter層會調用Model層請求數據,當Model層數據加載成功以後會調用Presenter層的回調方法通知Presenter層數據加載完畢,最後Presenter層再調用View層的接口將加載後的數據展現給用戶。這就是MVP模式的整個核心過程。這樣分層的好處就是大大減小了Model與View層之間的耦合度。一方面可使得View層和Model層單獨開發與測試,互不依賴。另外一方面Model層能夠封裝複用,能夠極大的減小代碼量。固然,MVP還有其餘的一些優勢,這裏再也不贅述。github

二.MVP官方指導

 

    https://github.com/googlesamples/android-architecture數據庫

    All projects are released in their own branch. Check each project's README for more information.網絡

    todo-mvp/ - Basic Model-View-Presenter architecture.架構

    todo-mvp-loaders/ - Based on todo-mvp, fetches data using Loaders.ide

    todo-mvp-databinding/ - Based on todo-mvp, uses the Data Binding Library.測試

    In progress:

    dev-todo-mvp-contentproviders/ - Based on todo-mvp-loaders, uses Content Providers

    dev-todo-mvp-clean/ - Based on todo-mvp, uses concepts from Clean Architecture.

    dev-todo-mvp-dagger/ - Based on todo-mvp, uses Dagger2 for Dependency Injection

    Also, see "New sample" issues for planned samples.

     

    全部項目都發布在本身的分支。檢查每一個項目的README的更多信息。

    todo-mvp / -基本Model-View-Presenter架構。

    基於todo-mvp todo-mvp-loaders / -,用裝載機獲取數據。

    基於todo-mvp todo-mvp-databinding / -,使用數據綁定庫。

    進展:

    基於todo-mvp-loaders dev-todo-mvp-contentproviders / -,使用內容提供者

    基於todo-mvp dev-todo-mvp-clean / -,使用概念從清潔架構。

    基於todo-mvp dev-todo-mvp-dagger / -,使用Dagger2依賴注入

    同時,看到「新樣本」問題樣品計劃。

 

使用MVP,Dagger,Rxjava,使用Template生成模版代碼 http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2016/1122/6793.html

相關文章
相關標籤/搜索