架構設計之MVP

一、簡介
  MVP (Model-View-Presenter),MVP 是從經典的模式MVC演變而來,它們的基本思想有相通的地方:Controller/Presenter負責邏輯的處理,Model提供數據,View負責顯示。

二、運用MVP

Presenter
  相當於model和view的協調者,作爲View和Model的溝通的橋樑,它從Model層檢索數據後返回給View層,將View與Model分離開來,使得View和Model之間沒有耦合。

Model
  主要提供數據的存取功能。Presenter需要通過Model層來存儲、獲取數據。

View
  負責界面數據的展示,與用戶進行交互。
  
在MVP裏,Presenter完全把Model和View進行了分離,主要的程序邏輯在Presenter裏實現。而且,Presenter與具體的View是沒有直接關聯的,而是通過定義好的接口進行交互,從而使得在變更View時候可以保持Presenter的不變。 View只應該有簡單的Set/Get的方法,用戶輸入和設置界面顯示的內容,除此就不應該有更多的內容,絕不容許直接訪問Model,這就是與MVC很大的不同之處。

三、MVP優點和缺點

優點
降低耦合度,實現了Model和View真正的完全分離。
模塊職責劃分明顯,層次清晰。
Presenter可以複用,一個Presenter可以用於多個View,而不需要更改Presenter的邏輯(當然是在View的改動不影響業務邏輯的前提下)。
如果我們把邏輯放在Presenter中,那麼我們就可以脫離用戶接口來測試這些邏輯(單元測試)。

缺點
由於對視圖的渲染放在了Presenter中,所以視圖和Presenter的交互會過於頻繁。還有一點需要明白,如果Presenter過多地渲染了視圖,往往會使得它與特定的視圖的聯繫過於緊密。一旦視圖需要變更,那麼Presenter也需要變更了

發佈了83 篇原創文章 · 獲贊 93 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章