Model-view-presenter

Model-view-presenter，簡稱MVP，是電腦軟體設計工程中一種對針對MVC模式，再審議後所延伸提出的一種軟體設計模式。

 模式描述 
Model-View-Presenter (MVP) 是使用者介面設計模式的一種，被廣泛用於便捷自動化單元測試和在呈現邏輯中改良分離關注點（separation of concerns）。
 Model 定義使用者介面所需要被顯示的資料模型，一個模型包含著相關的業務邏輯。
 View 視圖為呈現使用者介面的終端，用以表現來自 Model 的資料，和使用者命令路由再經過 Presenter 對事件處理後的資料。
 Presenter 包含著元件的事件處理，負責檢索 Model 取得資料，和將取得的資料經過格式轉換與 View 進行溝通。
MVP 設計模式通常會再加上 Controller 做為整體應用程序的後端程序工作。

 實作 
 Java 
在Java（AWT/Swing/SWT）應用程式裡，MVP模式可以透過讓使用者介面類別實行視圖接口（view interface）來運作。

相同的方法可以用在Java根基於網頁的應用程式，因為現代Java根基於元件的網頁框架允許使用和胖客戶端（thick clients）相同的逐項佈置法（component approach）客戶端邏輯的開發。

在Google Web Toolkit裡使用MVP只需要一些元件實行視圖接口。相同的方法在Echo2網頁框架裡也能使用。

 Google Web Toolkit - MVP 
Google Web Toolkit 結構：Best Practices For Architecting Your GWT App
 Large scale application development and MVP 
 gwt-presenter

 参考资料 

 参见 
 MVC
 Google Web Toolkit

 外部參考 
  GWT: Model-View-Presenter Architecture Diagram, https://web.archive.org/web/20100121031446/http://www.nieleyde.org/SkywayBlog/post.htm?postid=37782056-c4e1-4dfb-9caa-40ab9552ca3b

Category:软件设计模式