三層架構和MVC之間的區別

2021-09-25 04:01:18 字數 1425 閱讀 2521

三層架構是乙個分層式的軟體體系架構設計,它可適用於任何乙個專案。

mvc是乙個設計模式,它是根據專案的具體需求來決定是否適用於該專案。

那麼架構跟設計模式有什麼區別呢?

我們從接手乙個專案開始,首先,我們需要進行架構設計,一般我們採用的就是分層式的架構設計,即我們的三層架構。

然後,在確定了架構以後,我們再根據專案的具體需求去考慮是否需要應用一些設計模式,比如是否應用我們的mvc模式,抽象工廠模式等等。(在這裡我們看出,mvc與三層架構不是乙個等級的,而與抽象工廠等設計模式才是一路的)

最後,確定了模式以後,就是我們的一些具體的實現了。(當然乙個專案不僅僅考慮這些問題,我只是為了說明兩者的區別,將其他問題已省略)

三層架構將整個專案劃分為:表現層(ui)、業務邏輯層(bll)、資料訪問層(dal)。

mvc 即model(模型),view(檢視),controller(控制)。

下面看一下他倆的區別與聯絡

通過這個圖我們可以知道,我們平常所說的v是ui,c是bll,m是dal的觀點是錯誤的。

而我們通常所見到的mvc一般也都是在應用三層架構的基礎上,即將model層再進行分層。而如果model不再進行劃分的話,那麼使用mvc的意義也就不大了。

三層架構的目的著重點是「高內聚,低耦合」,即解耦。

mvc的目的則是實現web系統的職能分工,即職責劃分。

其實職責劃分也是解耦,但是三層側重的是整體的乙個解耦,而mvc側重的是web系統的解耦,即側重jsp和servlet的乙個解耦。

既然兩者有這麼多的不同,我們為什麼還總是將其混淆呢,下面我列舉了幾個我們常常將其混為一談的幾個原因:

1.二者都是「三層」。

這個原因是最容易迷惑我們初學者的,乙個是ui,bll,dal,乙個是view,controller,model,不都是三層嗎?

雖然都是「三層」(不一定是真的三層,還可以是多層),但是它們的劃分的不一樣。大家可從上面的圖中看出不同。

2.mvc總是伴隨著三層架構。

這個就是我在前面一再強調的,我們一般是在考慮使用(也可以不使用)了三層架構的基礎上再根據具體需求決定是否需要使用mvc,於是我們常說的mvc中總是伴隨著三層架構,所以大家總是會認為mvc就是三層架構,三層架構就是mvc,殊不知,它們二者是一起出現的。

3.都是在分層,即都是在解耦。

前面說它們目的的時候也說了,雖然它們的側重點不同,但是它們的總體目的是一樣的,都是為了解耦,對於初學者而言,是不知道這兩個側重點有何不同的。

大家往往對它們的聯絡知道很多,不然也不會混為一談,但是對它們的區別卻知道較少,希望我上面講解的它們兩者之間的區別可以讓大家對它們有些了解,如有寫的不妥的地方,請指教。

MVC和三層架構的區別

表示更糊塗了,大概認同這個吧 還有這個 三層架構是最基本的專案分層結果,而mvc則是三層架構的乙個變體,mvc是一種好的開發模式。首先你要明白mvc分別代表的是什麼意思.m 即model 模型層 主要負責出來業務邏輯以及資料庫的互動 v 即view 檢視層 主要用於顯示資料和提交資料 c 即cont...

MVC和三層架構以及區別

一 了解mvc結構以及功能 m moder,模型 資料訪問層 dao,業務邏輯層 乙個功能 資料庫增刪改查,bean類 v view,檢視 表示層 ul 用於展示 以及與使用者互動 html,js,css等前端技術實現 c controller 控制器 表示層 ul 接收請求,將請求跳轉到模型層進行...

MVC和三層架構

一 mvc m model 模型 應用程式的核心功能,管理這個模組中用的資料和值 v view 檢視 檢視提供模型的展示,管理模型如何顯示給使用者,它是應用程式的外觀 c controller 控制器 對使用者的輸入做出反應,管理使用者和檢視的互動,是連線模型和檢視的樞紐。1.1 mvc如何工作 m...