學習筆記 MVC與MVP區別

2021-10-25 07:43:23 字數 970 閱讀 9559

mvc(model - view - controller)(模型- 檢視 - 控制器)。 mvc強調將使用者的輸入、資料模型和資料表示方式分開設計,乙個互動式應用系統由模型、檢視和控制器3個部分組成,分別對應內部資料、資料表示和輸入/輸出控制部分。

mvc的整個處理流程為:系統攔截到使用者請求,根據相應規則(多數採用路由技術)將使用者請求交給控制器,控制器決定哪個模型來處理使用者的請求;模型根據業務邏輯處理完畢後將結果返回給控制器;然後控制器將資料提交給檢視;檢視將資料封裝以後,呈現給使用者。

mvp(model - view - presenter)(模型 - 檢視 - 表示器)。這是近年來流行的一種體系結構。從名稱上就可以看出,mvp與mvc十分類似。

mvp模型處理流程中:使用者直接與檢視進行互動(步驟1);檢視通過引發乙個事件,通知表示器有事件發生(步驟2),然後表示器訪問檢視以其iview介面所公開的屬性(步驟3)。這些屬性是檢視實際ui元素的包裝器;此後表示器呼叫模型(步驟4),再返回結果(步驟5);表示器轉換資料,然後設定ui的值,該操作通過iview介面完成(步驟6) ;檢視將最終頁面顯示給使用者。

mvp中的檢視比mvc中的檢視更加「被動」,檢視引發事件,但是由表示器讀取並設定ui的值。事實上,mvp模式設計的目的就是為了增強mvc模式,以嘗試使檢視更加被動,以便更容易更換檢視。

但mvp模式存在的問題是,檢視和表示器之間的聯絡比mvc模式中更加複雜,每個檢視都有自己的介面,並且檢視的介面特定於頁面的內容,所以難以委託框架來建立檢視,而必須由程式設計師手工完成建立。這也是微軟等公司採用mvc實現框架,而不是mvp的原因。

內容來自

呂云翔.《軟體工程理論與實踐》[m].北京:機械工業出版社,2017.3

MVC與MVP的區別

1.mvp是針對於高階開發工程師和架構師使用,mvp主要目的是 1 為了提高系統應用的擴充套件性,後期在修改以及維護 增加功能模組時,修改的地方越少越好 2 為了把m和v的耦合性降低,即解決邏輯和檢視之間的鬆散耦合性問題,減輕了view的工作壓力,在安卓的view指的是activity 3 在mvp...

MVC與MVP區別何在

區別有三點 1 presenter與controller都扮演了邏輯層的角色,但是presenter層的功能相對更複雜,因為他負責和view的雙向互動,controller只是單向的中介。因為presenter是從view層抽離出來的,通常和view是一對一的關係,而controller是面向業務的...

MVC與MVP的區別

mvc全名是model view controller,是模型 model 檢視 view 控制器 controller 的縮寫。1 模型 用於儲存資料以及處理 使用者請求的業務邏輯。2 檢視 向控制器提交資料,顯示模型中的資料。3 控制器 根據檢視提出的請求,判斷將請求和資料提交交給哪個模型來處理...