Android 手把手教學 MVP 模式 (一)
首先 我們先來介紹一下
MVP模式
是MVC模式在Android上的一種變體,要介紹MVP就得先介紹MVC。在MVC模式中,Activity應該是屬於View這一層。而實質上,它既承擔了View,同時也包含一些Controller的東西在裡面。這對於開發與維護來說不太友好,耦合度大高了。把Activity的View和Controller抽離出來就變成了View和Presenter,這就是MVP模式。
MVC模式
MVC模式的結構分為三部分,實體層的Model,檢視層的View,以及控制層的Controller。其中M層處理資料,業務邏輯等;V層處理介面的顯示結果;C層起到橋樑的作用,來控制V層和M層通訊以此來達到分離檢視顯示和業務邏輯層。
Model:Bean實體類,儲存解析例項資料
View:就是我們的UI介面
Controller:是控制VIew與Model的互動
缺點:在Android開發中,Activity並不是一個標準的MVC模式中的Controller,它的首要職責是載入應用的佈局和初始化使用者 介面,並接受並處理來自使用者的操作請求,進而作出響應。隨著介面及其邏輯的複雜度不斷提升,Activity類的職責不斷增加,以致變得龐大臃腫。
MVP模式
MVP框架由3部分組成:View負責顯示,Presenter負責邏輯處理,Model提供資料。在MVP模式裡通常包含3個要素(加上View interface是4個):
View:負責繪製UI元素、與使用者進行互動(在Android中體現為Activity)
Model:負責儲存、檢索、操縱資料(有時也實現一個Model interface用來降低耦合)
Presenter:作為View與Model互動的中間紐帶,處理與使用者互動的負責邏輯。
*View interface:需要View實現的介面,View通過View interface與Presenter進行互動,降低耦合,方便進行單元測試
MVP的優點:
1、模型與檢視完全分離,我們可以修改檢視而不影響模型;
2、可以更高效地使用模型,因為所有的互動都發生在一個地方——Presenter內部;
3、我們可以將一個Presenter用於多個檢視,而不需要改變Presenter的邏輯。這個特性非常的有用,因為檢視的變化總是比模型的變化頻繁;
4、如果我們把邏輯放在Presenter中,那麼我們就可以脫離使用者介面來測試這些邏輯(單元測試)。
下面就讓我們;來就行封裝
首先是BaseView

在實現的方法中,進行loging載入、和標題的設定 還有請求介面錯誤日誌

所有Presenter的基類 view 的繫結在這裡主要進行了繫結View和銷燬VIew
在這裡還可以可以優化一下就是View 使用弱引用
public void attachView(V view) {
this.weakView =new WeakReference(view);
}
今天就先到這裡 這裡封裝的就是基本的基類