1、MVC設(shè)計(jì)模式:
如下圖所示,MVC模式(Model-View-Controller)是軟件工程中的一種軟件架構(gòu)模式,把軟件系統(tǒng)分為三個(gè)基本部分:模型(Model)、視圖(View)和控制器(Controller)。MVC模式最早為T(mén)rygve Reenskaug提出,為施樂(lè)帕羅奧多研究中心(Xerox PARC)的Smalltalk語(yǔ)言發(fā)明的一種軟件設(shè)計(jì)模式。MVC可對(duì)程序的后期維護(hù)和擴(kuò)展提供了方便,并且使程序某些部分的重用提供了方便。而且MVC也使程序簡(jiǎn)化,更加直觀。
控制器Controller:對(duì)請(qǐng)求進(jìn)行處理,負(fù)責(zé)請(qǐng)求轉(zhuǎn)發(fā);
視圖View:界面設(shè)計(jì)人員進(jìn)行圖形界面設(shè)計(jì);
模型Model:程序編寫(xiě)程序應(yīng)用的功能(實(shí)現(xiàn)算法等等)、數(shù)據(jù)庫(kù)管理;
注意,MVC不是Java的東西,幾乎現(xiàn)在所有B/S結(jié)構(gòu)的軟件都采用了MVC設(shè)計(jì)模式。但是要注意,MVC在B/S結(jié)構(gòu)軟件并沒(méi)有完全實(shí)現(xiàn),例如在我們今后的B/S軟件中并不會(huì)有事件驅(qū)動(dòng)!
2、JavaWeb與MVC
JavaWeb的經(jīng)歷了JSP Model1、JSP Model1二代、JSP Model2三個(gè)時(shí)期。
2.1JSPModel1第一代
JSP Model1是JavaWeb早期的模型,它適合小型Web項(xiàng)目,開(kāi)發(fā)成本低!Model1第一代時(shí)期,服務(wù)器端只有JSP頁(yè)面,所有的操作都在JSP頁(yè)面中,連訪問(wèn)數(shù)據(jù)庫(kù)的API也在JSP頁(yè)面中完成。也就是說(shuō),所有的東西都耦合在一起,對(duì)后期的維護(hù)和擴(kuò)展極為不利。
2.2JSPModel1第二代
JSP Model1第二代有所改進(jìn),把業(yè)務(wù)邏輯的內(nèi)容放到了JavaBean中,而JSP頁(yè)面負(fù)責(zé)顯示以及請(qǐng)求調(diào)度的工作。雖然第二代比第一代好了些,但還讓JSP做了過(guò)多的工作,JSP中把視圖工作和請(qǐng)求調(diào)度(控制器)的工作耦合在一起了。
2.3JSPModel2
JSP Model2模式已經(jīng)可以清晰的看到MVC完整的結(jié)構(gòu)了。
JSP:視圖層,用來(lái)與用戶打交道。負(fù)責(zé)接收用來(lái)的數(shù)據(jù),以及顯示數(shù)據(jù)給用戶;
Servlet:控制層,負(fù)責(zé)找到合適的模型對(duì)象來(lái)處理業(yè)務(wù)邏輯,轉(zhuǎn)發(fā)到合適的視圖;
JavaBean:模型層,完成具體的業(yè)務(wù)工作,例如:開(kāi)啟、轉(zhuǎn)賬等。
JSP Model2適合多人合作開(kāi)發(fā)大型的Web項(xiàng)目,各司其職,互不干涉,有利于開(kāi)發(fā)中的分工,有利于組件的重用。但是,Web項(xiàng)目的開(kāi)發(fā)難度加大,同時(shí)對(duì)開(kāi)發(fā)人員的技術(shù)要求也提高了。
3、JavaWeb經(jīng)典三層框架
我們常說(shuō)的三層框架是由JavaWeb提出的,也就是說(shuō)這是JavaWeb獨(dú)有的!
所謂三層是表述層(WEB層)、業(yè)務(wù)邏輯層(Business Logic),以及數(shù)據(jù)訪問(wèn)層(Data Access)。
WEB層:包含JSP和Servlet等與WEB相關(guān)的內(nèi)容;
業(yè)務(wù)層:業(yè)務(wù)層中不包含JavaWeb API,它只關(guān)心業(yè)務(wù)邏輯;
數(shù)據(jù)層:封裝了對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)細(xì)節(jié);
注意,在業(yè)務(wù)層中不能出現(xiàn)JavaWebAPI,例如request、response等。也就是說(shuō),業(yè)務(wù)層代碼是可重用的,甚至可以應(yīng)用到非Web環(huán)境中。業(yè)務(wù)層的每個(gè)方法可以理解成一個(gè)萬(wàn)能,例如轉(zhuǎn)賬業(yè)務(wù)方法。業(yè)務(wù)層依賴數(shù)據(jù)層,而Web層依賴業(yè)務(wù)層!
-
控制器
+關(guān)注
關(guān)注
114文章
16854瀏覽量
182349 -
MVC
+關(guān)注
關(guān)注
0文章
73瀏覽量
14027
原文標(biāo)題:MVC 設(shè)計(jì)模式概述
文章出處:【微信號(hào):Imgtec,微信公眾號(hào):Imagination Tech】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
MVC框架
MVC架構(gòu)你知道多少
基于Enhydra的MVC模式Web應(yīng)用解決方案
基于MVC模式的WEB應(yīng)用框架
MVC模式在教學(xué)考評(píng)系統(tǒng)中的應(yīng)用
MVC框架實(shí)例—Spring MVC配置
基于MVC模式的地圖控件的設(shè)計(jì)

mvc模式的優(yōu)缺點(diǎn)

評(píng)論