楊老師課堂之JavaWeb體系的MVC與三層架構有什麼區別

首先,聲明一下,三層是三層,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頁面。

如下圖所示:

是不是頓時感到世界明朗了,對分層又深入瞭解了一步。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章