1. 程式人生 > >JavaWeb體系的MVC與三層架構有什麽區別

JavaWeb體系的MVC與三層架構有什麽區別

替換 業務邏輯 tro ews 三層架構 web 技術分享 mage 什麽

首先,聲明一下,三層是三層,MVC是MVC,這倆是毫無關系的。

三層是從整個應用程序架構的角度來分的三層(如果程序需要,還可以分多層)。

三層架構通常包括表示層,業務邏輯層以及數據訪問層。雖然三層架構將系統在邏輯上分成了三層,但是它並不是物理上的分層。也就是說,對不同層的代碼而言,經歷編譯、打包、部署後,所有的代碼最終還是運行在同一個進程中。
MVC是一種設計模式,一種思想,是存在於應用程序(B/S結構:又稱之瀏覽器/服務器)的視圖層劃分出來的不同功能的幾個模塊。

MVC主要是為了解決應用程序用戶界面的樣式替換問題,把展示數據的 HTML 頁面盡可能的和業務代碼分離。MVC把純凈的界面展示邏輯(用戶界面)獨立到一些文件中(Views),把一些和用戶交互的程序邏輯(Controller)單獨放在一些文件中,在 Views 和 Controller 中傳遞數據使用一些專門封裝數據的實體對象,這些對象,統稱為Models。

只所以說MVC和三層毫無關系,是因為它們二者使用範圍不同:三層可以應用於任何語言、任何技術的應用程序;而MVC只是為了解決BS應用程序視圖層各部分的耦合關系。它們互不沖突,可以同時存在,也可根據情況使用其中一種。

對於,我們JAVA開發者來說:

三層架構是界面層(Web)業務邏輯層(Service)和數據訪問層(Dao)構成的

MVC設計模式是模型層(Model)界面層(View)和控制層(Controller)構成的,而且他們之間也不對應。

總結:

? ① 三層架構是Java體系獨有的專有名詞,MVC在其他語言中也是存在的設計模式。

? ② 三層架構是采用分層思想,減輕類與類(接口)之間的耦合,通俗的說是為了減輕代碼之間的依賴性,避免產生牽一發而動全身的後果。而MVC意在將後端代碼和前臺展示代碼進行了分離。JavaBean既是一個封裝的java對象,View是用來給前臺客戶端顯示反饋的頁面,采用Jsp來完成。而前臺的代碼與後端的邏輯代碼之間的交互工作就交付給了Servlet。

? 運作流程:Servlet接受到前臺的傳遞的數據進行傳遞給業務邏輯層Service層,Service層處理完畢傳遞給數據庫訪問Dao,Dao通過Jdbc或者持久化將數據註入到數據庫中去,繼而反饋給Service層,Service層響應給Servlet,Servlet返回給Jsp頁面。

如下圖所示:

技術分享圖片



JavaWeb體系的MVC與三層架構有什麽區別