http://www.cnblogs.com/bravestarrhu/archive/2012/05/02/2479461.htmlhtml
在開發Android應用時,相信不少同窗遇到和我同樣的狀況,雖然項目剛開始構架時自認爲MVC層級分的特別明確,但最終每每是一個Activity有好幾百行代碼,並且邏輯和UI顯示徹底混雜在一塊兒,致使後續項目的維護成本巨大。一個偶然的機會看到有種MVP模式(Mode-View-Presenter)能夠比MVC更好的解耦和,而後好奇的研究了下這個模式並嘗試在如今項目中進行推廣。下面就把本身目前學習到知識總結出來。android
MVP模式將分爲兩篇博客進行總結:mvc
1、MVP簡介學習
我理解的MVP是由MVC優化衍生出來的一種模式,MVP將MVC中的Controller層進行了優化而生成了Presenter。Presenter單詞翻譯爲「提出者;任命者;主持人」,Presenter層和MVC的Controller同樣,負責核心邏輯,但不同的是Presenter經過接口協議進行數據傳遞,並阻斷了View和Model的直接聯繫,從而使View和Model更加專一於自身業務邏輯。測試
2、MVP結構優化
View.net
View一般來講就是有Activity、Fragment實現的,View會包含一個或多個Presenter的引用來知足視圖的業務邏輯。View和Presenter的交互是雙向的,即View層能夠調用Presenter的邏輯方法,Presenter也能夠控制View的顯示。翻譯
Presenter
Presenter做爲Model和View的橋樑,負責從Model拿到數據進行處理並返回給View。但Presenter和其餘兩層的溝通是經過接口協議進行的,因此每一個Presenter中一般會包涵一個或多個接口協議。
Model
和MVC同樣,做爲數據倉庫只負責對APP數據進行處理。
Android開發MVP模式實踐中的示例將APP分爲如下四層。
3、MVP VS MVC
在把本來MVC模式的代碼修改成MVP模式後,總結這兩個模式在實際使用過程當中的不一樣點基本上總結爲兩點:
4、總結
MVP將會爲你的代碼帶來以下好處: