Android MVP與MVC的區別和理解

時間 2021-11-04 08:40:14

1樓:匿名使用者

mvp架構:

view不直接與model互動,而是通過與presenter互動來與model間接互動。

presenter與view的互動是通過介面來進行的。

通常view與presenter是一對一的,但複雜的view可能繫結多個presenter來處理邏輯。

mvc架構:

view可以與model直接互動。

controller是基於行為的,並且可以被多個view共享。

可以負責決定顯示哪個view。

2樓:夏侯初翠

model:業務邏輯和實體模型,用來操作實際的資料,包含bean和model的抽象介面來降低耦合。

view:就是android中的檢視,需要建立乙個view的抽象介面view inte***ce。通過實現view的介面來實現view與presenter的互動,從而降低耦合。

對應於activity,負責view的繪製與使用者互動;

presenter:view和model的中間樞紐,處理和使用者互動的邏輯。

安卓mvc和mvp的區別

3樓:陽光語言矯正學校

對於mvp(model view presenter),大多數人都能說出一二:「mvc的演化版本」,「讓model和view完全解耦」等等。本篇博文僅是為了做下記錄,提出一些自己的看法,和幫助大家如何針對乙個activity頁面去編寫針對mvp風格的**。

對於mvp,我的內心有乙個問題:

為何這個模式出來後,就能被廣大的android的程式設計師接受呢?

問了些程式設計師,他們對於mvp的普遍的認識是:「**很清晰,不過增加了很多類」。我在第一次看到mvp的時候,看了乙個demo,看完以後覺得非常nice(但是回過頭來,自己想個例子寫,就頭疼寫不出來,當然這在後文會說)。

nice的原因還是因為,這個模式的確讓**的清晰度有了很大的提公升。

那麼,提公升一般都是對比出來的,回顧下,沒有應用mvp的**結構。很多人說明顯是mvc麼:

view:對應於布局檔案

model:業務邏輯和實體模型

controllor:對應於activity

看起來的確像那麼回事,但是細細的想想這個view對應於布局檔案,其實能做的事情特別少,實際上關於該布局檔案中的資料繫結的操作,事件處理的**都在activity中,造成了activity既像view又像controller(當然了data-binder的出現,可能會讓view更像view吧)。這可能也就是為何,在該文中有一句這樣的話:詳細

mvc和mvp的區別

4樓:小傻

區別在於

從上圖可以看出:mvc的耦合性還是較高的,view可以直接訪問model,導致3者之間構成了迴路。所以兩者的主要區別是,mvp中view不能直接訪問model,需要通過presenter發出請求,view與model不能直接通訊。

2.與mvvm(model-view-viewmodel)的區別mvvm與mvp非常相似,唯一區別是view和model進行雙向繫結,兩者之間有一方發生變化則會反應到另一方上。mvvm模式有點像listview與adapter、資料集的關係,當資料集發生變化時,呼叫adapter的notifydatasetchanged之後view就直接更新,同時它們之間又沒有耦合,使得listview變得更加靈活。

5樓:香緣

mvp與mvc有著乙個重大的區別:在mvp中view並不直接使用model,它們之間的通訊是通過presenter (mvc中的controller)來進行的,所有的互動都發生在presenter內部,而在mvc中view會直接從model中讀取資料而不是通過 controller。

android mvp與mvc的區別和理解

6樓:陽光語言矯正學校

mvc架構:  mvc就是model-view-controller,它們的作用是: (資料模型)model:

資料的封裝和儲存,業務邏輯和實體模型   (檢視)view:檢視介面,對應於布局檔案   (控制器)controller:業務邏輯,對應於activity、fragment等

mvp架構:

mvp是model-view-presenter,它們的作用如下:

model:業務邏輯和實體模型,用來操作實際的資料,包含bean和model的抽象介面來降低耦合。

view:就是android中的檢視,需要建立乙個view的抽象介面view inte***ce。通過實現view的介面來實現view與presenter的互動,從而降低耦合。

對應於activity,負責view的繪製與使用者互動;

presenter:view和model的中間樞紐,處理和使用者互動的邏輯。

MVC模式的優點及缺點有哪些,MVC與BS的區別,他們的優點及劣勢是什麼?

立港娜娜 物件不同 mvc包括三類物件,model是應用物件 view為其螢幕表示 controller定義了對使用者輸入的處理方式。在應用mvc方式以前,通常將這三個物件的功能合到了一起,應用mvc分離了它們,為設計提供了靈活性和可重用性。mvc設計模式是目前最流行的web應用設計模式,給專案 的...

mvc和三層架構到底有什麼區別,mvc與三層架構的區別是什麼

narvik小紅帽 mvc就是三層架構的一種實現 m對應了三層架構中的業務邏輯和資料 反正我是這麼理解的 mvc和三層架構,是不一樣的。三層架構中,dal bll web層各司其職,意在職責分離。mvc是 model view controller,嚴格說這三個加起來以後才是三層架構中的web層,也...

mvc與bs的區別他們的優點及劣勢是什麼

立港娜娜 物件不同 mvc包括三類物件,model是應用物件 view為其螢幕表示 controller定義了對使用者輸入的處理方式。在應用mvc方式以前,通常將這三個物件的功能合到了一起,應用mvc分離了它們,為設計提供了靈活性和可重用性。mvc設計模式是目前最流行的web應用設計模式,給專案 的...