表現層模式旨在分離易變的 View與穩定的 UI 邏輯,提高可測試性。三大主流模式:MVC、MVP、PM(微軟稱 MVVM)。
30 年前 Trygve Reenskaug 提出,將表現層分三角色:

View 與 Model 存在耦合(View 需認識 Model),此為 MVP 出現原因之一。
Web 環境下演變:
與傳統 MVC 最大差異:

Presentation Model / Model-View-ViewModel,ViewModel 封裝 View 狀態與行為,支援雙向繫結,適用 WPF/Silverlight/Xamarin 等 XAML 技術棧。
| 模式 | View 與 Model | UI 邏輯位置 | 測試性 | 適用場景 |
|---|---|---|---|---|
| MVC | 直接耦合 | Controller | 中 | Web (Model 2)、桌面 |
| MVP | 解耦 (介面) | Presenter | 高 | WinForms、複雜表單 |
| PM/MVVM | ViewModel 繫結 | ViewModel | 最高 | WPF、Silverlight、Xamarin、現代 Web (Knockout/Vue) |
本文出自「破狼」博客:原文連結