MVC 模式雖分離 Model、View、Controller,但未嚴格限制三者交互,允許 View 與 Model 直接通訊,導致維護困難。實際專案中需依框架特性制定更嚴格規則,衍生出 MVP 等變體。
MVP 適用於事件驅動框架(Web Forms、WinForms)。Presenter 取代 Controller,嚴格限制交互:

Martin Fowler 依 View/Presenter 交互方式分為兩種:
員工查詢頁面:Presenter 操作部門下拉清單與員工列表格。正確接口定義:
public interface IEmployeeSearchView
{
IEnumerable<string> Departments { set; }
string SelectedDepartment { get; }
IEnumerable<Employee> Employees { set; }
}
View 實作時內部綁定 DropDownList 與 GridView,Presenter 僅操作資料集合,達成關注點分離。