iT邦幫忙

2021 iThome 鐵人賽

DAY 6
2

在Web 開發中,MVC 與三層架構這兩個名詞會經常被人提及,很多人會將它們混為一談,認為MVC 就是三層架構,而實際上它們是兩個不同的概念,並不是說完全沒有關係,它們存在差異但也有相似的地方,不過可以肯定的是,這兩個架構都是為了降低系統物件關係間的耦合度而產生的。

MVC 架構

首先介紹MVC 架構,MVC 指的是Model(模型)、View(視圖)、Controller(控制器)的簡寫,分別代表應用程式中三種不同職責的物件。

Model

代表存取資料的POJO,也可以帶有業務邏輯,其作用是在記憶體中暫時儲存資料,並在資料變化時更新控制器,若要持久化則需要將它寫入資料庫或檔案中。

View

主要用來顯示內容或提交數據。

Controller

主要用來處理用戶的請求,它可以將用戶請求轉發給相應的Model 進行處理並根據Model 處理結果向用戶提供相應的回應。

MVC 架構的工作流程

  1. 用戶通過View 向Server 提交請求,可能是表單請求、超連結請求亦或是Ajax 請求等。
  2. Controller 接收到請求後進行解析,轉發請求內容給相應的Model 進行處理。
  3. Model 處理完畢後,將結果返回給Controller。
  4. Controller 根據處理結果找到相應的View 頁面,頁面經渲染後再返回給用戶。
    https://ithelp.ithome.com.tw/upload/images/20210921/20140728VsKmCXCzf4.png

三層架構

再來介紹三層架構,它就是將整個應用程式劃分為表現層、業務邏輯層、數據存取層三個部分,各司其職不互相干擾,既解決耦合性,也增加了邏輯性、覆用性和可維護性。

表現層(Presentation Layer)

主要負責接收用戶請求、轉發請求、產生數據並返回結果。

業務邏輯層(Business Layer)

針對具體問題的操作,主要是從資料庫中取得數據並對數據進行邏輯處理。

資料存取層(Data Access Layer)

也叫做持久層,主要負責對資料庫的操作,針對數據的新增、刪除、修改、查詢。

三層架構的工作流程

表現層則只是與用戶互動的一個功能,決定用戶請求的處理方式並返回結果;業務邏輯層並沒有使用SQL 語句對資料庫進行操作,而只是透過資料存取層的接口存取資料庫中的數據,並對數據進行邏輯上的處理。
https://ithelp.ithome.com.tw/upload/images/20210923/201407280ueusEaLfZ.png

總結

簡單來說,三層架構的表現層是處理用戶請求並返回結果,這對應到MVC 中的V 和C,所以MVC 中的V 和C 可以判斷是屬於三層架構的表現層;而MVC 中的M 可以對存取資料或是進行業務邏輯處理,這對應到三層架構的業務邏輯層和資料存取層,它們的關係就會如下圖所示。
https://ithelp.ithome.com.tw/upload/images/20210921/20140728i1A4UsRM7O.png

參考網站

Web on Servlet Stack
Spring MVC与三层架构 - Heart.Think.Do


上一篇
Day 05 - IoC 容器與Servlet 容器
下一篇
Day 07 - Spring Boot 常用依賴
系列文
誤打誤撞學了Spring Boot 還當了後端工程師30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言