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

MVC、MVP 與 Model2 架構模式探討 (下)

     編輯:關於ASP.NET

MVC 模式雖分離 Model、View、Controller,但未嚴格限制三者交互,允許 View 與 Model 直接通訊,導致維護困難。實際專案中需依框架特性制定更嚴格規則,衍生出 MVP 等變體。

MVP 模式

MVP 適用於事件驅動框架(Web Forms、WinForms)。Presenter 取代 Controller,嚴格限制交互:

  • 僅 Presenter 可直接操作 Model
  • View 僅透過 Presenter 間接存取 Model
  • Model 不主動通知 View,改為使用者驅動

MVP 架構圖

Passive View (PV) 與 Supervising Controller (SC)

Martin Fowler 依 View/Presenter 交互方式分為兩種:

  • PV (Passive View):View 完全被動,所有 UI 元素操作由 Presenter 控制,View 接口僅暴露資料屬性,不暴露控件類型,利於測試與平台無關。
  • SC (Supervising Controller):View 保留部份簡單綁定邏輯,Presenter 僅監督複雜邏輯。

PV 接口設計範例

員工查詢頁面:Presenter 操作部門下拉清單與員工列表格。正確接口定義:

public interface IEmployeeSearchView
{
    IEnumerable<string> Departments { set; }
    string SelectedDepartment { get; }
    IEnumerable<Employee> Employees { set; }
}

View 實作時內部綁定 DropDownList 與 GridView,Presenter 僅操作資料集合,達成關注點分離。

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