1. 程式人生 > >我理解的MVP框架

我理解的MVP框架

1、MVP框架說明

MVP的通用解釋如下:

  • View 對應於Activity,負責View的繪製以及與使用者互動;
  • Model 負責處理資料的載入或者儲存,比如從網路或本地資料庫獲取資料等;
  • Presenter 負責完成View於Model間的互動,主要起到橋樑作用,是一箇中間協調人的角色。

從程式碼實現的角度,簡單的來說MVP的關係,V呼叫P的方法來實現某個使用者具體行為的操作(比方點選某個按鈕代表的點贊),並提供介面給P來更新介面;P通過M獲取或者提交資料做相關的業務,M可以提供同步或者非同步的方法來完成。


呼叫層次關係

     V                         ->  對P的公共方法呼叫

     對V的介面呼叫 <-       P                               ->        同步資料獲取介面

                                        可以 非同步返回結果    <- M   


MVP的作用是顯而易見的:程式碼結構清晰、易維護、易擴充套件,大大減少了Model與View層之間的耦合度。一方面可以使得View層和Model層單獨開發與測試,互不依賴。另一方面Model層可以封裝複用,可以極大的減少程式碼量


2、MVP框架改進

簡單通過MVP框架去實現功能後,會發現:

  • V可能給P封裝了介面太多,P需要關注很多更新介面的行為
  • 另外一個V通常需要對應一個P來做相應的行為,類的數量無形增多了。

如何改進其實是見仁見智了,對框架的使用,第一步是僵化,也就是照著框架給的方法去實現,第二步則是優化,能夠提煉出適合自己或者專案的通用架構來,也就是收穫滿滿了。