更新時間:2022-06-20 09:17:30 來源:動力節(jié)點 瀏覽2167次
MVC框架和三層架構的區(qū)別有哪些?動力節(jié)點小編來告訴大家。
表現(xiàn)層(UI)、業(yè)務邏輯層(BLL)、數(shù)據(jù)訪問層(DAL)。
1.表現(xiàn)層(UI):通俗講就是展現(xiàn)給用戶的界面,即用戶在使用一個系統(tǒng)的時候他的所見所得。
2.業(yè)務邏輯層(BLL):針對具體問題的操作,也可以說是對數(shù)據(jù)層的操作,對數(shù)據(jù)業(yè)務邏輯處理。
3.數(shù)據(jù)訪問層(DAL):該層所做事務直接操作數(shù)據(jù)庫,針對數(shù)據(jù)的增添、刪除、修改、更新、查找等。
MVC有三種角色:
Model:用來儲存數(shù)據(jù)的組件,指要處理的業(yè)務代碼和數(shù)據(jù)操作代碼。
View:從Model中獲取數(shù)據(jù)進行內(nèi)容展示的組件。同樣的Model在不同的View下可展示不同的效果。是一種視圖。
Controller:接受并處理用戶指令(操作Model(業(yè)務)),選擇一個View進行操作。是Model和View的橋梁。
MVC和三層架構的區(qū)別:
很長一段時間,我對MVC的理解僅限于,認為它和三層架構一樣,只不過三層架構更多關注于將業(yè)務和數(shù)據(jù)分開,而MVC更關注于將容易變動的界面和業(yè)務邏輯分開,同樣是解耦的作用。這也是上一篇博客的體會。但是隨著我們的經(jīng)驗和學習的深入,光知道MVC是分的哪三層就確實不應該了。那么我了來對比一下MVC和三層。
其實,我們知道分三層的目的是為了“高內(nèi)聚,低耦合”的思想。
1.結構不同。
三層架構是典型的上下級關系,上層依賴于下層。而MVC作為一種表現(xiàn)模式,是一種協(xié)作的關系,是平級的。它們用在不同的領域,可以說MVC可以作為一個三層架構中的UI層來展現(xiàn)界面。截取以前的博客中的兩張圖作為對比。
2.二者的Model不同
在三層中也有Model,但是那是三層中的實體層,是三個層次之間的聯(lián)系紐帶。而MVC中的Model是指數(shù)據(jù)或程序邏輯,是一種頁面級的數(shù)據(jù),它接收的數(shù)據(jù)是從業(yè)務邏輯層處理好的數(shù)據(jù)。
3.二者的分離不同
三層是B層的邏輯層分離了界面顯示U層和直接與數(shù)據(jù)庫打交道的D層。這是解除了顯示和業(yè)務邏輯的耦合。
MVC中,Model是不知道View和Controller的存在的,這就隔離了表現(xiàn)和數(shù)據(jù)層,View和Controller是單向引用,View引用Controller的數(shù)據(jù)。這樣分離了界面和數(shù)據(jù)。
4.應用場景不同
三層是基于業(yè)務邏輯來分的,我們會在軟件工程中的架構設計中想到采用三層架構,這樣實現(xiàn)解耦的目的,通過業(yè)務邏輯來劃分層次。而mvc是基于頁面來分的,當我們想要達到界面視圖和數(shù)據(jù)的分離才用到MVC。
如果還在認為MVC就是三層架構那就是錯誤的,如果非要把它們用在一起的話,MVC可以單出來作為一層。其實項目中就是把MVC只作為一個表現(xiàn)層,是在客戶端體現(xiàn)的。而MVC中的Controller是負責與B層邏輯層甚至是服務接口聯(lián)系。
以上就是關于“一文讀懂MVC和三層架構的區(qū)別”介紹,大家如果想了解更多相關知識,可以關注一下動力節(jié)點的Java在線學習,里面的課程內(nèi)容細致全面,通俗易懂,很適合沒有基礎的小白學習,希望對大家能夠有所幫助。
0基礎 0學費 15天面授
有基礎 直達就業(yè)
業(yè)余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習