首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

表現層模式總覽:MVC、MVP、PM/MVVM 架構演進與比較

     編輯:關於ASP.NET

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

MVC (Model-View-Controller)

30 年前 Trygve Reenskaug 提出,將表現層分三角色:

  • Model:應用狀態、資料來源、透過事件通知 View 狀態變更(觀察者模式)
  • View:使用者介面、渲染 Model 資料、觸發 Controller
  • Controller:轉換使用者輸入為 Model 操作、選擇下一個 View

MVC 架構圖

View 與 Model 存在耦合(View 需認識 Model),此為 MVP 出現原因之一。

Model 2 (Web MVC 變體)

Web 環境下演變:

  • 攔截器(HttpModule)依 URL 路由至 Controller/Action
  • Action 修改 Model、選擇 View
  • View 依 Model 產生 HTML/CSS/JS

與傳統 MVC 最大差異:

  1. View 不直接依賴 Model,操作 ViewModel/ViewData
  2. 使用者操作非來自 View,而是伺服器端攔截器捕獲 URL 分派

Model 2 架構

MVP 變體

  • Passive View:View 完全被動,Presenter 操控一切
  • Supervising Controller:View 保留簡單繫結,Presenter 處理複雜邏輯

PM / MVVM

Presentation Model / Model-View-ViewModel,ViewModel 封裝 View 狀態與行為,支援雙向繫結,適用 WPF/Silverlight/Xamarin 等 XAML 技術棧。

核心比較表

模式View 與 ModelUI 邏輯位置測試性適用場景
MVC直接耦合Controller中Web (Model 2)、桌面
MVP解耦 (介面)Presenter高WinForms、複雜表單
PM/MVVMViewModel 繫結ViewModel最高WPF、Silverlight、Xamarin、現代 Web (Knockout/Vue)

本文出自「破狼」博客:原文連結

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved