MVC與三層架構
系統(tǒng)架構
系統(tǒng)架構是指,整合應用系統(tǒng)程序大的結構。經常提到的系統(tǒng)結構有兩種:
- 三層架構
- MVC
這兩種結構既有區(qū)別,又有聯(lián)系。但這兩種結構的使用,均是為了降低系統(tǒng)模
塊間的耦合度。
三層架構
三層架構是指:視圖層 View、服務層 Service,與持久層 Dao。它們分別完成不同的功能。
- View 層:用于接收用戶提交請求的代碼在這里編寫。
- Service 層:系統(tǒng)的業(yè)務邏輯主要在這里完成。
- Dao 層:直接操作數(shù)據(jù)庫的代碼在這里編寫。
為了更好的降低各層間的耦合度,在三層架構程序設計中,采用面向抽象編程。
即上層對下層的調用,是通過接口實現(xiàn)的。
而下層對上層的真正服務提供者,是下層接口的實現(xiàn)類。
服務標準(接口)是相同的,服務提供者(實現(xiàn)類)可以更換。
這就實現(xiàn)了層間解耦合。
MVC
MVC,即 Model 模型、View 視圖,及 Controller 控制器。
- View:視圖,為用戶提供使用界面,與用戶直接進行交互。
- Model:模型,承載數(shù)據(jù),并對用戶提交請求進行計算的模塊。其分為兩類:
一類稱為數(shù)據(jù)承載 Bean:實體類,專門用戶承載業(yè)務數(shù)據(jù)的,如 Student、User 等
一類稱為業(yè)務處理 Bean:指 Service 或 Dao 對象,專門用于處理用戶提交請求的。 - Controller:控制器,用于將用戶請求轉發(fā)給相應的 Model 進行處理,并根據(jù) Model 的計算結果向用戶提供相應響應。
MVC 架構程序的工作流程:
(1)用戶通過 View 頁面向服務端提出請求,可以是表單請求、超鏈接請求、AJAX 請求等
(2)服務端 Controller 控制器接收到請求后對請求進行解析,找到相應的 Model 對用戶請求進行處理
(3)Model 處理后,將處理結果再交給 Controller
(4)Controller 在接到處理結果后,根據(jù)處理結果找到要作為向客戶端發(fā)回的響應 View 頁面。頁面經渲染(數(shù)據(jù)填充)后,再發(fā)送給客戶端。
MVC與三層架構的關系:
SSM,即 SpringMVC、Spring 與 MyBatis 三個框架。它們在三層架構中所處的位置是不同的,即它們在三層架構中的功能各不相同,各司其職。
- SpringMVC:作為 View 層的實現(xiàn)者,完成用戶的請求接收功能。SpringMVC 的 Controller作為整個應用的控制器,完成用戶請求的轉發(fā)及對用戶的響應。
- MyBatis:作為 Dao 層的實現(xiàn)者,完成對數(shù)據(jù)庫的增、刪、改、查功能。
- Spring:以整個應用大管家的身份出現(xiàn)。整個應用中所有 Bean 的生命周期行為,均由Spring 來管理。即整個應用中所有對象的創(chuàng)建、初始化、銷毀,及對象間關聯(lián)關系的維護,均由 Spring 進行管理。
作者:JS_HCX
鏈接:https://www.jianshu.com/p/731d027b2d91
來源:簡書
版權聲明:本文內容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權/違法違規(guī)的內容, 請發(fā)送郵件至 舉報,一經查實,本站將立刻刪除。