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來做相應的行爲,類的數量無形增多了。
如何改進其實是見仁見智了,對框架的使用,第一步是僵化,也就是照着框架給的方法去實現,第二步則是優化,能夠提煉出適合自己或者項目的通用架構來,也就是收穫滿滿了。