我理解的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來做相應的行爲,類的數量無形增多了。

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


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