我理解的MVP框架
阿新 • • 發佈:2018-11-04
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來做相應的行為,類的數量無形增多了。
如何改進其實是見仁見智了,對框架的使用,第一步是僵化,也就是照著框架給的方法去實現,第二步則是優化,能夠提煉出適合自己或者專案的通用架構來,也就是收穫滿滿了。