MVC 與三層架構

1、簡述

在軟件開發中,MVC與三層架構這兩個專業詞彙常常耳聞,同時總有不少人將它們混爲一談,認爲三層架構就是指MVC,給它畫上等號,但實際上,這是錯誤的認知,並非說它們沒有任何關係,而是MVC與三層架構不是簡單的相等。下面將拿javaweb開發中的MVC(SSM框架)與三層架構進行比較,讓你們理清二者之間的關係。java

2、概念

一、系統架構

所謂系統架構是指整個應用系統程序大的結構,常見的系統架構有三層架構與MVC。前面已經說了,三層架構與MVC不是簡單的相等,它們存在差異,但又聯繫。如今能夠確定的是,這兩種系統架構的出現,都是爲了下降系統模塊間的耦合度。web

二、三層架構

三層架構是指:視圖層View、服務層Service、持久層Dao,分別完成不一樣的功能。數據庫

View層:用於接收用戶提交請求的代碼在這裏編寫。編程

Service層:系統的業務邏輯主要在這裏編寫。架構

Dao層:直接操做數據庫的代碼在這裏編寫。mvc

爲了更好的下降各層間的耦合度,在三層架構程序設計中,採用面向抽象編程。即上層對下層的調用,是經過接口實現的。而下層對上層的真正服務提供者,是下層接口的實現類。服務標準(接口)是相同的,服務提供者(實現類)能夠更換。這就實現了層間的耦合。框架

三層架構

三、MVC

MVC是指:Model模型、View視圖、Controller控件器。設計

View:視圖,爲用戶提供使用界面,與用戶直接進行交互。3d

Model:模型,承載數據,並對用戶提交請求進行計算的模塊。其分爲兩類,一類稱爲數據承載Bean,一類稱爲業務處理Bean。所謂數據承載Bean是指實體類,專門承載業務數據的,如Student、User等。而業務處理Bean則是指Service或Dao對象,專門用於處理用戶提交請求的。cdn

Controller:控制器,用於將用戶請求轉發給相應的Model進行處理,並處理Model的計算結果向用戶提供相應響應。

MVC架構程序的工做流程是這樣的:

(1)用戶經過View頁面向服務端提出請求,能夠是表單請求、超連接請求、AJAX請求等。

(2)服務端Controller控制器接收到請求後對請求進行解析,找到相應 的Model對用戶請求進行處理。

(3)Model處理後,將處理結果再交給Controller。

(4)Controller在接處處理結果後,根據處理結果找到要做爲向客戶端發回的響應View頁面。頁面經渲染(數據填充)後,再發送給客戶端。

MVC

3、關係

一、MVC與三層架構的關係

MVC與三層架構很類似,但它們並不同。若是以三層架構爲背景,那麼MVC的三個部分分別對應的是什麼?

三層架構中的View層簡單的說就是跟用戶發生直接關係的層,MVC中的V和C就是這樣的存在,因此MVC中的V和C均屬於三層架構的View層。同時,咱們知道MVC中的M(Model)包括了數據承載Bean和業務處理Bean,其中業務處理Bean分爲Service或Dao對象,分別對應業務邏輯處理和數據庫操做,相應的,它們對應的是三層架構中的Service層和Dao層。故,它們的關係以下圖所示:

MVC與三層架構的關係

二、SSM與三層架構的關係

SSM即SpringMVC、Spring、Mybatis三個框架。它們在三層架構中所處的位置是不一樣的,即它們在三層架構中的功能各不相同,各司其職。

SpringMVC:做爲View層的實現者,完成用戶的請求接收功能。SpringMVC的Controller做爲整個應用的控制器,完成用戶請求的轉發及對用戶的響應。

MyBatis:做爲 Dao層的實現者,完成對數據庫的增、刪、改、查功能。

Spring:以整個應用大管家的身份出現。整個應用中全部的Bean的生命週期行爲,均由Spring來管理。即整個應用中全部對象的建立、初始化、銷燬,及對象間關聯關係的維護,均由Spring進行管理。

SSM與三層架構的關係
相關文章
相關標籤/搜索