999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

淺談MVC模式

2018-05-14 19:27:58彭詩(shī)媛闞洪
讀天下 2018年20期
關(guān)鍵詞:模型

彭詩(shī)媛 闞洪

摘要:MVC是一種源于桌面程序的架構(gòu)模式,它的基本思想是把程序界面和業(yè)務(wù)邏輯分開(kāi),這樣便于軟件的后期維護(hù),同時(shí)也方便開(kāi)發(fā)時(shí)期分工及管理,MVC有很多優(yōu)點(diǎn)所以現(xiàn)在已經(jīng)被廣泛地應(yīng)用于web開(kāi)發(fā)中。本文將介紹MVC模式的概念,并對(duì)各個(gè)層次的功能進(jìn)行詳細(xì)的描述以及闡述MVC模式的處理過(guò)程和總結(jié)MVC模式的優(yōu)缺點(diǎn)。

關(guān)鍵詞:MVC;視圖;模型;控制器

一、 MVC模式概念

MVC的英文全稱是Model-View-Controller。它的核心思想是有效地組合“視圖”,“模型”和“控制器”。

在這種模式中,Servlet用來(lái)處理請(qǐng)求的事務(wù),充當(dāng)了控制器(Controller即“C”)的角色,Servlet負(fù)責(zé)響應(yīng)客戶對(duì)業(yè)務(wù)邏輯的請(qǐng)求并根據(jù)用戶的請(qǐng)求行為,決定將哪個(gè)JSP頁(yè)面發(fā)送給客戶。JSP頁(yè)面處于表現(xiàn)層,也就是視圖(View即“V”)的角色。JavaBean則負(fù)責(zé)數(shù)據(jù)的處理,也就是模型(Model即“M”)的角色。

Servlet+JSP+JavaBean(MVC)模式適合開(kāi)發(fā)復(fù)雜的web應(yīng)用,在這種模式下,Servlet負(fù)責(zé)處理用戶請(qǐng)求,JSP負(fù)責(zé)數(shù)據(jù)顯示,JavaBean負(fù)責(zé)封裝數(shù)據(jù)。Servlet+JSP+JavaBean模式程序各個(gè)模塊之間層次清晰,web開(kāi)發(fā)推薦采用此種模式。

二、 視圖(View)

視圖是用戶看到并與之交互的界面。視圖向用戶顯示相關(guān)的數(shù)據(jù),并能接受用戶的輸入數(shù)據(jù),但是它并不進(jìn)行任何實(shí)際的業(yè)務(wù)處理。視圖可以向模型查詢業(yè)務(wù)狀態(tài),但不能改變模型。視圖還能接受模型發(fā)出的數(shù)據(jù)更新事件,從而對(duì)用戶界面進(jìn)行同步更新。

對(duì)于Web應(yīng)用來(lái)說(shuō),可以概括為HTML界面,隨著應(yīng)用的復(fù)雜性和規(guī)模性,界面的處理也變得具有挑戰(zhàn)性。一個(gè)應(yīng)用可能有很多不同的視圖,MVC設(shè)計(jì)模式對(duì)于視圖的處理僅限于視圖上數(shù)據(jù)的采集和處理,以及用戶的請(qǐng)求,而不包括在視圖上的業(yè)務(wù)流程的處理。業(yè)務(wù)流程的處理交予模型(Model)處理。比如一個(gè)訂單的視圖只接受來(lái)自模型的數(shù)據(jù)并顯示給用戶,以及將用戶界面的輸入數(shù)據(jù)和請(qǐng)求傳遞給控制和模型。

對(duì)于基于請(qǐng)求/響應(yīng)方式的主體。模型表示業(yè)務(wù)數(shù)據(jù)和業(yè)務(wù)邏輯。一個(gè)模型能為多個(gè)視圖提供數(shù)據(jù)。由于同一個(gè)模型可以被多個(gè)視圖重用,所以提高了應(yīng)用的可重用性。

三、 模型(Model)

模型是應(yīng)用程序的主體部分。模型表示業(yè)務(wù)數(shù)據(jù)和業(yè)務(wù)邏輯。就是業(yè)務(wù)流程/狀態(tài)的處理以及業(yè)務(wù)規(guī)則的制定。一個(gè)模型能為多個(gè)視圖提供數(shù)據(jù)。由于同一個(gè)模型可以被多個(gè)視圖重用,所以提高了應(yīng)用的可重用性。

業(yè)務(wù)流程的處理過(guò)程對(duì)其他層來(lái)說(shuō)是黑箱操作,模型接受視圖請(qǐng)求的數(shù)據(jù),并返回最終的處理結(jié)果。業(yè)務(wù)模型的設(shè)計(jì)可以說(shuō)是MVC最主要的核心。MVC設(shè)計(jì)模式告訴我們,把應(yīng)用的模型按一定的規(guī)則抽取出來(lái),抽取的層次很重要,這也是判斷開(kāi)發(fā)人員是否優(yōu)秀的設(shè)計(jì)依據(jù)。抽象與具體不能隔得太遠(yuǎn),也不能太近。MVC并沒(méi)有提供模型的設(shè)計(jì)方法,而只告訴你應(yīng)該組織管理這些模型,以便于模型的重構(gòu)和提高重用性。我們可以用對(duì)象編程來(lái)做比喻,MVC定義了一個(gè)頂級(jí)類,告訴它的子類你只能做這些,但沒(méi)法限制你能做這些。這點(diǎn)對(duì)編程的開(kāi)發(fā)人員來(lái)說(shuō)非常重要。

業(yè)務(wù)模型還有一個(gè)很重要的模型那就是數(shù)據(jù)模型。數(shù)據(jù)模型主要是指實(shí)體對(duì)象的數(shù)據(jù)保存。比如將一張訂單保存到數(shù)據(jù)庫(kù),從數(shù)據(jù)庫(kù)獲取訂單。我們可以將這個(gè)模型單獨(dú)列出,所有有關(guān)數(shù)據(jù)庫(kù)的操作只限制在該模型中。

四、 控制器(Controller)

控制器接受用戶的輸入并調(diào)用模型和視圖去完成用戶的需求。當(dāng)Web用戶單擊Web頁(yè)面中的提交按鈕來(lái)發(fā)送HTML表單時(shí),控制器接受請(qǐng)求并調(diào)用相應(yīng)的模型組件去處理請(qǐng)求,然后調(diào)用相應(yīng)的視圖來(lái)顯示模型返回的數(shù)據(jù)。

劃分控制層的作用也很明顯,它清楚地告訴你,它就是一個(gè)分發(fā)器,選擇什么樣的模型,選擇什么樣的視圖,可以完成什么樣的用戶請(qǐng)求。控制層并不做任何的數(shù)據(jù)處理。例如,用戶點(diǎn)擊一個(gè)鏈接,控制層接受請(qǐng)求后,并不處理業(yè)務(wù)信息,它只把用戶的信息傳遞給模型,告訴模型做什么,選擇符合要求的視圖返回給用戶。因此,一個(gè)模型可能對(duì)應(yīng)多個(gè)視圖,一個(gè)視圖可能對(duì)應(yīng)多個(gè)模型。

五、 MVC的處理過(guò)程

首先用戶通過(guò)視圖層發(fā)出請(qǐng)求,接著控制器接收用戶的請(qǐng)求,并決定應(yīng)該調(diào)用哪個(gè)模型來(lái)進(jìn)行處理,然后模型用業(yè)務(wù)邏輯來(lái)處理用戶的請(qǐng)求并返回?cái)?shù)據(jù),最后控制器將處理后的數(shù)據(jù)傳遞給視圖層,并通過(guò)視圖層更新顯示。

六、 MVC的優(yōu)點(diǎn)

(一) 耦合性低

所謂耦合性就是模塊代碼之間的關(guān)聯(lián)程度。利用MVC框架使得View(視圖)層和Model(模型)層可以很好地分離,這樣就達(dá)到了解耦的目的,所以耦合性低,減少模塊代碼之間的相互影響。

(二) 可擴(kuò)展性好

由于耦合性低,添加需求,擴(kuò)展代碼就可以減少修改之前的代碼,降低bug的出現(xiàn)率。

(三) 模塊職責(zé)劃分明確

主要?jiǎng)澐謱覯,V,C三個(gè)模塊,利于代碼的維護(hù)。

七、 MVC的缺點(diǎn)

1. 由于實(shí)施MVC模式過(guò)程而產(chǎn)生的開(kāi)銷。設(shè)計(jì)MVC模式需要有經(jīng)驗(yàn)的分析人員對(duì)系統(tǒng)進(jìn)行分析;類的數(shù)量及文件數(shù)量的增加。采用MVC模式設(shè)計(jì)會(huì)增大應(yīng)用程序的代碼量。

2. 由于設(shè)計(jì)MVC模式時(shí)分析不夠,設(shè)計(jì)不當(dāng)而引起相反的效果,把屬于一個(gè)模塊的分開(kāi),把不相干的模塊聚在一起。對(duì)屬于一個(gè)實(shí)體不同方面的嚴(yán)格區(qū)分導(dǎo)致了一個(gè)緊湊結(jié)構(gòu),使得測(cè)試和維護(hù)的工作量大幅度增加,每一次變動(dòng)牽涉到許多本不相干的模塊的變動(dòng)。

八、 總結(jié)

通過(guò)對(duì)MVC的探討,我們知道它是用來(lái)分割頁(yè)面和數(shù)據(jù)庫(kù)訪問(wèn)的框架,降低了兩者的耦合度,同時(shí)通過(guò)Controller的控制,也使系統(tǒng)更加的靈活,使我們的代碼更健壯,復(fù)用性更強(qiáng),但是凡事都有他適用的范圍,我們不能覺(jué)得它好,就瞎用,有時(shí)可能會(huì)適得其反,因此MVC的學(xué)習(xí)還需要我們以后慢慢探討。

參考文獻(xiàn):

[1]孫琦.淺議MVC設(shè)計(jì)模式[J].科技信息:科學(xué)·教研,2007(16):74.

[2]李譜華.淺析MVC設(shè)計(jì)模式及其應(yīng)用[J].科技信息,2010(16):662-663.

[3]劉方軍.基于MVC三層架構(gòu)模式的研究與應(yīng)用[D].廣東工業(yè)大學(xué),2011.

作者簡(jiǎn)介:

彭詩(shī)媛,闞洪,重慶市,重慶工程學(xué)院。

猜你喜歡
模型
一半模型
一種去中心化的域名服務(wù)本地化模型
適用于BDS-3 PPP的隨機(jī)模型
提煉模型 突破難點(diǎn)
函數(shù)模型及應(yīng)用
p150Glued在帕金森病模型中的表達(dá)及分布
函數(shù)模型及應(yīng)用
重要模型『一線三等角』
重尾非線性自回歸模型自加權(quán)M-估計(jì)的漸近分布
3D打印中的模型分割與打包
主站蜘蛛池模板: 国产国产人成免费视频77777 | 午夜视频免费一区二区在线看| jizz在线免费播放| 国产精品久久久久无码网站| 色天天综合久久久久综合片| 午夜爽爽视频| 99热这里都是国产精品| 亚洲资源在线视频| 91毛片网| 真实国产乱子伦高清| 国产尹人香蕉综合在线电影| 亚洲91在线精品| 亚洲综合亚洲国产尤物| 久久国语对白| 亚洲国产日韩一区| 伊人大杳蕉中文无码| 欧美国产成人在线| 亚洲精品大秀视频| 久久婷婷国产综合尤物精品| 全午夜免费一级毛片| 熟妇丰满人妻| 亚洲最大福利网站| 午夜a级毛片| 嫩草在线视频| 波多野结衣久久高清免费| 98超碰在线观看| 伊在人亚洲香蕉精品播放| 欧美日韩专区| 国产午夜一级毛片| 亚洲日韩高清在线亚洲专区| 欧美天堂久久| 欧美色视频在线| 九九九精品成人免费视频7| 午夜欧美理论2019理论| 国产麻豆另类AV| 成人中文字幕在线| 99伊人精品| 台湾AV国片精品女同性| 特级毛片免费视频| 亚洲色图欧美视频| 日本不卡视频在线| 亚洲第一色视频| 天堂va亚洲va欧美va国产| 欧美日韩高清在线| 国产美女在线免费观看| 无码专区国产精品一区| 欧美成人手机在线观看网址| aa级毛片毛片免费观看久| 国产不卡在线看| 青青青国产视频手机| 香蕉久人久人青草青草| 五月婷婷综合在线视频| 国产欧美视频综合二区| 久久夜色精品国产嚕嚕亚洲av| 日本高清视频在线www色| 久久不卡精品| 国产美女精品人人做人人爽| 黄片在线永久| 国产一区二区在线视频观看| 亚洲人成成无码网WWW| 亚洲视频二| 99re在线观看视频| 亚洲精品无码抽插日韩| 国产最新无码专区在线| 中国国产高清免费AV片| 国产91久久久久久| 亚洲天堂777| 欧美不卡二区| 福利视频99| 亚洲av无码片一区二区三区| 啪啪啪亚洲无码| 免费一级成人毛片| 国产美女精品人人做人人爽| 日韩福利视频导航| 亚洲国产欧美国产综合久久 | 亚洲第一综合天堂另类专| 午夜欧美理论2019理论| 天天色天天操综合网| 亚洲天堂久久久| 天天色天天操综合网| 久久这里只有精品66| 亚洲精品卡2卡3卡4卡5卡区|