三层架构和mvc的区别
一.MVC簡(jiǎn)介
MVC 即Model(模型),View(視圖),Controller(控制控制器)。
MVC是一種軟件開發(fā)架構(gòu)模式,全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設(shè)計(jì)典范,用一種業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼,將業(yè)務(wù)邏輯聚集到一個(gè)部件里面,在改進(jìn)和個(gè)性化定制界面及用戶交互的同時(shí),不需要重新編寫業(yè)務(wù)邏輯。MVC被獨(dú)特的發(fā)展起來(lái)用于映射傳統(tǒng)的輸入、處理和輸出功能在一個(gè)邏輯的圖形化用戶界面的結(jié)構(gòu)中。
1.Model:模型對(duì)象是將程序數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)中的應(yīng)用程序部件。
2.View:視圖是顯示應(yīng)用程序用戶界面 (UI) 的組件。
3.Controller:控制器則用于處理和響應(yīng)用戶輸入和交互。
二.三層框架
三層架構(gòu)將整個(gè)項(xiàng)目劃分為:表現(xiàn)層(UI)、業(yè)務(wù)邏輯層(BLL)、數(shù)據(jù)訪問(wèn)層(DAL)。
三層架構(gòu)就是將整個(gè)業(yè)務(wù)應(yīng)用劃分為:界面層(User Interface layer)、業(yè)務(wù)邏輯層(Business Logic Layer)、數(shù)據(jù)訪問(wèn)層(Data access layer)。區(qū)分層次的目的即為了“高內(nèi)聚低耦合”的思想。在軟件體系架構(gòu)設(shè)計(jì)中,分層式結(jié)構(gòu)是最常見,也是最重要的一種結(jié)構(gòu)。微軟推薦的分層式結(jié)構(gòu)一般分為三層,從下至上分別為:數(shù)據(jù)訪問(wèn)層、業(yè)務(wù)邏輯層(又或稱為領(lǐng)域?qū)?#xff09;、表示層。
1.數(shù)據(jù)訪問(wèn)層(EntityFramework):主要負(fù)責(zé)對(duì)數(shù)據(jù)的訪問(wèn)管理,為業(yè)務(wù)邏輯層提供方法調(diào)用。
2.業(yè)務(wù)邏輯層:主要負(fù)責(zé)業(yè)務(wù)邏輯的處理,對(duì)數(shù)據(jù)層的操作。
3.UI表示層:主要對(duì)用戶的請(qǐng)求接受,以及數(shù)據(jù)的返回,為客戶端提供應(yīng)用程序的訪問(wèn)。
三層框架引用關(guān)系圖:
?
三.MVC和三層架構(gòu)的區(qū)別:
它倆劃分的層次不同。三層架構(gòu)是一個(gè)分層式的軟件體系架構(gòu)設(shè)計(jì),它可適用于任何一個(gè)項(xiàng)目。MVC是一個(gè)設(shè)計(jì)模式,它是根據(jù)項(xiàng)目的具體需求來(lái)決定是否適用于該項(xiàng)目。
????????????M 即Model(模型層),主要負(fù)責(zé)處理業(yè)務(wù)邏輯以及數(shù)據(jù)庫(kù)的交互
?? ??? ??? ?V 即View(視圖層),主要負(fù)責(zé)顯示數(shù)據(jù)和提交數(shù)據(jù)
?? ??? ??? ?C 即Controller(控制層),主要是永作輔助捕獲請(qǐng)求并控制請(qǐng)求轉(zhuǎn)發(fā)
?? ??? ??? ?三層
?? ??? ??? ?UI界面層
?? ??? ??? ?BLL業(yè)務(wù)邏輯層
?? ??? ??? ?DAL數(shù)據(jù)訪問(wèn)層
?? ??? ??? ?三層是基于業(yè)務(wù)邏輯來(lái)分的,而mvc是基于頁(yè)面來(lái)分的
?? ??? ??? ?MVC模式是一種復(fù)合設(shè)計(jì)模式,一種解決方案
?? ??? ??? ?三層是種軟件架構(gòu),通過(guò)接口實(shí)現(xiàn)編程
?? ??? ??? ?三層模式是體系結(jié)構(gòu)模式,MVC是設(shè)計(jì)模式
?? ??? ??? ?三層模式又可歸于部署模式,MVC可歸于表示模式
硬要給他們對(duì)應(yīng)的話,那么三層架構(gòu)中的UI對(duì)應(yīng)MVC中的view(jsp),都是用于顯示以及獲取界面的數(shù)據(jù);三層架構(gòu)中的BLL層和DAL層對(duì)應(yīng)MVC中的Model(javabean)層都是用于處理上層傳遞來(lái)的數(shù)據(jù)以及從數(shù)據(jù)庫(kù)獲取的數(shù)據(jù)的;MVC中的Controller(Servlet)最多算是三層架構(gòu)中的UI的一部分,也就我們常說(shuō)的是Servlet。
?? ??? ??? ?
總結(jié)
以上是生活随笔為你收集整理的三层架构和mvc的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Adobe Photoshop CS6
- 下一篇: 格雷码(从零基础讲解,C++版)