安卓手冊 第四章(MVP介紹和實戰)

安卓手冊 第四章(MVP介紹和實戰)


概述:在開發過程中,個人比較建議儘早使用一種或多種開發模式(視程序實際情況而定),其實很簡單,習慣的養成很重要,此篇文章爲大家介紹了其中的一種架構模式:MVP,希望大家能夠從中獲得一些收穫。

什麼是MVP?

MVPModel, View和Presenter的簡稱。是非常有名的MVC模式的演化版。MVP模式把顯示邏輯和從業務邏輯層中分離出來,理想狀況下,MVP模式中,在替換不同的視圖(View)的情況下,可以實現完全相同的業務邏輯。

Presenter代替了MVC中Controller,它比Controller擔當更多的任務,也更加複雜。Presenter處理事件,執行相應的邏輯,這些邏輯映射到Model的Command以操作Model。那些處理UI如何工作的代碼基本上都位於Presenter。Presenter如同一個樂隊的指揮家,表現和協調整個Application,它負責創建和協調其它對象。

MVP與MVC有着一個重大的區別:在MVP中View並不直接使用Model,它們之間的通信是通過Presenter (MVC中的Controller)來進行的,所有的交互都發生在Presenter內部,而在MVC中View會從直接Model中讀取數據而不是通過 Controller。


爲什麼使用MVP模式

因爲在Android中,Activity嚴重耦合了界面和數據獲取層。這樣不僅導致了Activity的類越來越龐大,而且,如果修改數據獲取層,可能也導致整個View都要重寫。也非常不利於模塊和自動化測試。

MVP使View獨立於數據,把大量的邏輯從Activity中提取出來。把應用分層,每層都可以獨立測試和變動。


MVP模式是如何工作的

MVP模式中的角色劃分並沒有標準的劃分方法。大致的定義如下:

  • 表示器(Presenter)
    表示器也可以稱爲指揮器,它處在View和Model之間,負責從Model中獲取數據,然後返回給View。同時決定視圖上的交互的處理。

  • 視圖(View)
    視圖比較好理解,在Android中一般對應的是ActivityFragment或者View。因爲視圖上的交互需要通知表示器,讓它決定做什麼事情。所以View中一般包含一個Presenter的引用。理想狀況下,Presenter一般使用依賴注入的方式實現。

  • 模型(Model)
    模型是應用程序中的數據處理和業務邏輯部分。

MVP處理流程如下圖所示: 
mvp


好了,以上時MVP的介紹,相信大家已經瞭解,下面進行實戰演練(不牽扯相應設計,只爲了解思想):

正在編輯,待後續。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章