天天看點

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

版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。 https://blog.csdn.net/kese7952/article/details/81024892

首先,聲明一下,三層是三層,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與三層架構有什麼差別

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

作者: 楊校

出處:

https://blog.csdn.net/kese7952

分享是快樂的,也見證了個人成長曆程,文章大多都是工作經驗總結以及平時學習積累,基于自身認知不足之處在所難免,也請大家指正,共同進步。

本文版權歸作者所有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出, 如有問題, 可郵件([email protected])咨詢。