MVC和MVP的特點和區別

2021-09-05 11:09:58 字數 1653 閱讀 3864

mvc

mvc是model(模型層)、view(檢視層)、controller的組成的一種android開發框架,用一種業務邏輯、資料、介面分離的方法組織**,將業務邏輯聚集到乙個部件裡面,在改進和個性格定製介面和使用者互動的同時,不需要修改業務邏輯的**。

model(模型)

是應用程式中處理應用程式資料邏輯的部分,一般用來儲存資料

view(檢視)

是應用程式中的使用者可視介面,也就是用來展示model層的資料,通常是根據model的資料來建立

controller(控制器)

是應用程式中處理使用者互動的部分。通常是從view層讀取操作資訊,controller在經過一系列的邏輯處理後,改變model的資料狀態,然後model層將改變之後的資料展示到view層中,contrller層本身不需要輸出任何東西,和做什麼處理,只需要接收請求,決定用哪個模型處理請求,和哪個檢視返回資料。

mvc有助於管理複雜的應用程式,可以讓開發人員單獨進行某一層的開發。

優點:1.耦合性低

檢視層和業務層分離,這樣就允許改變檢視,不用重新編譯模型和控制器的**,同樣當業務流程和業務需求改變也只需要改變模型層,應為m、v、c的分離所以很容易改變應用程式的資料層和業務規則。

2.重用性高

允許不同樣式的檢視共享乙個模型

3.生命週期成本低

是開發和維護使用者介面的技術含量降低

4.部署快

他可以讓乙個開發人員專注於業務邏輯的開發,而另乙個開發人員專注於介面的開發。

5.維護性高

因為m、v、c層的分離所以更易於維護和修改

缺點:1.不適合小型和中型規模的應用程式

2.檢視和控制器之間過於緊密的連線

檢視和控制器是相互分離的,但是他們的聯絡特別緊密,也就是檢視不能失去控制器,控制器也不能失去檢視。

mvpmvp全稱model、view、presenter,mvp是從經典的模式mvc演變而來,他們基本思想有想通的地方,mvc的controller層就相當於mvp的presenter層,負責邏輯的處理,model用來提供資料,view負責顯示。

特點:mvp和mvc最大的區別就是:在mvp中view並不會直接使用model,他們的之間的所有通訊都是通過presenter層進行,所有的互動都發生的presenter內部,在mvc中view會直接從model中讀取資料而不是通過controller.

在mvc裡,view是可以直接訪問model的,從而view裡會包含model資訊,不可避免的還要包括一些業務邏輯。導致更改view也是比較困難的。

優點:1、模型與檢視完全分離,我們可以修改檢視而不影響模型

2、可以更高效地使用模型,因為所有的互動都發生在乙個地方——presenter內部

3、我們可以將乙個presenter用於多個檢視,而不需要改變presenter的邏輯。這個特性非常的有用,因為檢視的變化總是比模型的變化頻繁。

4、如果我們把邏輯放在presenter中,那麼我們就可以脫離使用者介面來測試這些邏輯(單元測試)

缺點:由於對檢視的渲染放在了presenter中,所以檢視和presenter的互動會過於頻繁。還有一點需要明白,如果presenter過多地渲染了檢視,往往會使得它與特定的檢視的聯絡過於緊密。一旦檢視需要變更,那麼presenter也需要變更了。比如說,原本用來呈現html的presenter現在也需要用於呈現pdf了,那麼檢視很有可能也需要變更。

MVP和MVC的區別

1 mvc model controller view 把業務剝離到controller中,讓view專注於現實ui。但是view和model並沒有解耦合,controller和view有可能由同乙個物件承擔,比如android的activity.2.mvp model view presenter...

MVC和MVP的區別

mvc的概念 mvc是model view controller的縮寫,分別代表web應用程式中的3種職責。模型 用於儲存資料以及處理使用者請求的業務邏輯。檢視 想控制器提交資料,顯示模型中的資料。控制器 根據檢視提出的請求,判斷將請求和資料交給哪個模型處理,處理後的有關結果交給哪個檢視顯示更新顯示...

mvc和mvp和mvvm的區別

mvc,mvp,mvvm設計架構的區別,相信大家對這幾個概念都有所了解。首先,明確一點,架構的目的就是為了提高開發效率,降低維護成本。利用物件導向的設計原則,對每個模組的職責進行合理的劃分,為了讓其他人更好的理解架構設計思想,然後給予每個模組乙個通用的名詞解釋,為了更好的說清楚資料繫結,這裡就簡單解...