国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

MVC與三層結(jié)構(gòu)技術(shù)的應(yīng)用研究

2013-04-29 00:44孟勛
軟件工程 2013年9期
關(guān)鍵詞:代碼框架服務(wù)器

摘 要:本文介紹MVC與三層結(jié)構(gòu)技術(shù)的內(nèi)容和區(qū)別,包括MVC框架的結(jié)構(gòu)和三層結(jié)構(gòu)技術(shù)的內(nèi)容,并對(duì)兩者的主要應(yīng)用(包括B/S架構(gòu)下)進(jìn)行闡述;對(duì)兩者結(jié)合設(shè)計(jì)軟件的應(yīng)用和性能做了說(shuō)明和論述。因?yàn)镸VC與三層結(jié)構(gòu)技術(shù)在軟件開發(fā)(尤其在Web技術(shù)下的數(shù)據(jù)庫(kù)系統(tǒng)開發(fā))具有的重要作用和地位,對(duì)其研究具有重要的現(xiàn)實(shí)意義。

關(guān) 鍵 詞:MVC ;三層結(jié)構(gòu)技術(shù);軟件框架;B/S;Web

1.MVC與三層結(jié)構(gòu)技術(shù)簡(jiǎn)介

MVC是一種軟件,是一種軟件框架[1]。軟件框架是對(duì)通用功能操作進(jìn)行抽象的軟件,這些抽象的功能操作的代碼可以根據(jù)應(yīng)用程序的功能要求有選擇的改變,并復(fù)用框架代碼,進(jìn)而形成特定的應(yīng)用軟件。

就是把一些通用的功能,通過(guò)開發(fā)平臺(tái)以代碼和架構(gòu)的形式表示出來(lái),開發(fā)者通過(guò)框架提供的接口進(jìn)行功能開發(fā),可以復(fù)寫框架代碼,而不必從開始編寫??蚣芴峁┝艘恍┸浖δ艿哪J(rèn)實(shí)現(xiàn),在特定的開發(fā)平臺(tái)下,就是說(shuō)開發(fā)平臺(tái)已經(jīng)代替開發(fā)者實(shí)現(xiàn)了一些通用功能并提供了相應(yīng)的代碼,開發(fā)者只需重寫或添加功能代碼。注意:框架內(nèi)部代碼不可重寫;應(yīng)用程序流程必須在框架內(nèi)部。

三層結(jié)構(gòu)技術(shù)[2]是一種設(shè)計(jì)架構(gòu)模式,是一種軟件的設(shè)計(jì)思想??梢园衍浖O(shè)計(jì)分為表示層、中間層和數(shù)據(jù)層,已利于軟件功能的設(shè)計(jì)和實(shí)現(xiàn),稱為三層結(jié)構(gòu)技術(shù)。

框架給出了應(yīng)用程序的體系結(jié)構(gòu),設(shè)計(jì)模式給出了具體設(shè)計(jì)的解決方案;設(shè)計(jì)模式可用不同語(yǔ)言和不同方式來(lái)實(shí)現(xiàn),而框架則是開發(fā)平臺(tái)給出的設(shè)計(jì)和代碼的混合體;設(shè)計(jì)模式與語(yǔ)言無(wú)關(guān)的,具體設(shè)計(jì)受制于開發(fā)平臺(tái)框架的具體實(shí)現(xiàn)環(huán)境。利用框架開發(fā)軟件應(yīng)體現(xiàn)設(shè)計(jì)模式的基本思想,軟件設(shè)計(jì)模式思想的實(shí)現(xiàn)要選擇合適的軟件框架并受制于框架。

2.MVC結(jié)構(gòu)

2.1組成

由Servlet(Controller)、JSP(View)、JavaBean(Model)三部分構(gòu)成。Model是負(fù)責(zé)保持狀態(tài)、數(shù)據(jù)的應(yīng)用組件,通常這個(gè)狀態(tài)持久于數(shù)據(jù)庫(kù)之中。View是負(fù)責(zé)用戶界面的組件(UI),通常這個(gè)UI是使用Model模型數(shù)據(jù)來(lái)創(chuàng)建的。Controller用來(lái)處理用戶交互,控制器行為(Action)用來(lái)完成用戶發(fā)過(guò)來(lái)的每一個(gè)請(qǐng)求,操作Model(模型)最終會(huì)選擇用哪個(gè)View(視圖)來(lái)顯示UI的組件。

2.2特點(diǎn)

視圖、控制和模型分離,近一步提高了復(fù)用程度,三者可以獨(dú)立變化,降低了耦合性并進(jìn)一步提高了模塊的復(fù)用性;合作效率得到充分發(fā)揮,開發(fā)成員的分工界面更加清晰;當(dāng)出現(xiàn)問(wèn)題時(shí)更容易鎖定問(wèn)題。

2.3結(jié)構(gòu)

3.三層結(jié)構(gòu)技術(shù)[3]

所謂三層體系結(jié)構(gòu),就基于Web的數(shù)據(jù)庫(kù)開發(fā)而言就是在客戶端與數(shù)據(jù)庫(kù)之間加入了一個(gè)中間層,也叫組件層。

而軟件設(shè)計(jì)的一般三層體系結(jié)構(gòu)[4]分為:

(1)表現(xiàn)層(UI):就是展現(xiàn)給用戶的界面,即用戶在使用一個(gè)系統(tǒng)的時(shí)候展現(xiàn)在操作員或用戶的所見與所得及其過(guò)程。

(2)業(yè)務(wù)邏輯層(BLL):針對(duì)具體問(wèn)題的操作,對(duì)數(shù)據(jù)庫(kù)系統(tǒng)而言也可以說(shuō)是對(duì)數(shù)據(jù)層的操作,對(duì)數(shù)據(jù)業(yè)務(wù)邏輯處理和一些事務(wù)辦理。

(3)數(shù)據(jù)訪問(wèn)層(DAL):該層所做事務(wù)是對(duì)數(shù)據(jù)庫(kù)直接操作,針對(duì)存儲(chǔ)數(shù)據(jù)進(jìn)行數(shù)據(jù)的增添、刪除、修改、更新、查找等功能實(shí)現(xiàn)。

完善的三層結(jié)構(gòu)的要求是:修改表現(xiàn)層而不用修改邏輯層,修改邏輯層而不用修改數(shù)據(jù)層。這樣就為軟件設(shè)計(jì)提供了架構(gòu)設(shè)計(jì)思想,利于代碼的模塊設(shè)計(jì)和功能的設(shè)計(jì)實(shí)現(xiàn),修改和重組。

4.三層結(jié)構(gòu)在B/S上的應(yīng)用

在Browser/Server三層體系結(jié)構(gòu)下,應(yīng)用軟件三層結(jié)構(gòu)設(shè)計(jì)的軟件系統(tǒng)被分割為表示層(Presentation)、功能層(Business Logic)、數(shù)據(jù)層(Data Service)三個(gè)相對(duì)獨(dú)立的單元。

第一層:表示層,Web瀏覽器上的軟件設(shè)計(jì)。

表示層包含系統(tǒng)的顯示邏輯,位于客戶端。它的任務(wù)是由Web瀏覽器向網(wǎng)絡(luò)上的某一Web服務(wù)器提出服務(wù)請(qǐng)求,Web服務(wù)器對(duì)用戶身份進(jìn)行驗(yàn)證后用HTTP協(xié)議把所需的主頁(yè)傳送給客戶端,客戶機(jī)接受傳來(lái)的主頁(yè)文件,并把它顯示在Web瀏覽器上,相應(yīng)數(shù)據(jù)由此被獲得和顯示。

第二層:功能層,具有應(yīng)用程序擴(kuò)展功能的Web服務(wù)器上的軟件設(shè)計(jì),實(shí)現(xiàn)數(shù)據(jù)處理和事務(wù)處理。

功能層包含系統(tǒng)的事務(wù)處理邏輯,位于Web服務(wù)器端。它的任務(wù)是接受用戶的請(qǐng)求,首先需要執(zhí)行相應(yīng)的擴(kuò)展應(yīng)用程序與數(shù)據(jù)庫(kù)服務(wù)器進(jìn)行連接,通過(guò)SQL等方式向數(shù)據(jù)庫(kù)服務(wù)器提出數(shù)據(jù)處理申請(qǐng),而后等數(shù)據(jù)庫(kù)服務(wù)器將數(shù)據(jù)處理和事務(wù)處理的結(jié)果提交給Web服務(wù)器,再由Web服務(wù)器傳送回客戶端。

第三層:數(shù)據(jù)層,數(shù)據(jù)庫(kù)服務(wù)器上的軟件設(shè)計(jì),主要是對(duì)數(shù)據(jù)庫(kù)直接進(jìn)行數(shù)據(jù)處理。

數(shù)據(jù)層含系統(tǒng)的數(shù)據(jù)處理邏輯,位于數(shù)據(jù)庫(kù)服務(wù)器端。其任務(wù)是接受Web服務(wù)器對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)操縱的請(qǐng)求,實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)查詢、修改、更新等功能,把運(yùn)行結(jié)果和數(shù)據(jù)提交給Web服務(wù)器。

5.主要的MVC[5]

(1)Struts:Struts是Apache軟件基金下Takarta項(xiàng)目的一部分。Struts框架的主要架構(gòu)設(shè)計(jì)和開發(fā)者是Craig R.McClanahan。Struts 是Java Web MVC框架中不爭(zhēng)的王者。

(2)Spring:Spring實(shí)際上是Expert One-on-One J2EE Design and Development 一書中所闡述的設(shè)計(jì)思想的具體實(shí)現(xiàn)。

(3)Hibernate:Hibernate是一個(gè)開放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,使得Java程序員可以隨心所欲的使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù)。

(4).NET:.NET MVC是微軟官方提供的以MVC模式為基礎(chǔ)的.NET Web應(yīng)用程序 (Web Application)框架。

6.MVC與三層結(jié)構(gòu)技術(shù)應(yīng)用

傳統(tǒng)的軟件設(shè)計(jì)代碼繁瑣,代碼模塊間耦合性高,可重用性差,開發(fā)更簡(jiǎn)潔地設(shè)計(jì)一款代碼整潔,耦合性低,可重用性更高,可擴(kuò)展性更好的軟件,MVC與三層結(jié)構(gòu)技術(shù)被采用。

(1)Hibernate:Hibernate是一個(gè)開放源代碼的對(duì)象關(guān)系映射框架;它是一個(gè)基于J2EE的java應(yīng)用框架。Hibernate有六個(gè)核心接口,分別為Session、SessionFactory、Transaction、Query、Criteria和Configuration。不僅進(jìn)行持久化對(duì)象操作,還進(jìn)行事務(wù)控制操作,通過(guò)這六個(gè)核心接口,業(yè)務(wù)邏輯和數(shù)據(jù)顯示分離,體現(xiàn)了對(duì)象編程的思想。

(2).NET:在傳統(tǒng)的.NET的WEB軟件開發(fā)中,顯示頁(yè)面和邏輯頁(yè)面,代碼耦合性高,可維護(hù)性差,采用MVC架構(gòu),和三層結(jié)構(gòu)技術(shù)有效地節(jié)約了代碼開發(fā)工作量,表示層和業(yè)務(wù)邏輯層及數(shù)據(jù)層分離,降低了代碼的耦合性,提高了系統(tǒng)的可維護(hù)性及可復(fù)用性。

僅僅使用了XML并不就是.NET應(yīng)用,僅僅使用SOAP SDK調(diào)用一個(gè)Web Service也不是.NET應(yīng)用。.NET是基于Windows操作系統(tǒng)運(yùn)行的操作平臺(tái),應(yīng)用于互聯(lián)網(wǎng)的分布式。三層結(jié)構(gòu)技術(shù)應(yīng)用于分布式開發(fā),極大地提高了代碼的可讀性和可移植性。基于ASP的集中式和Web Service的分布式開發(fā),采用MVC和三層結(jié)構(gòu)技術(shù)成為一股潮流。

7.性能

7.1 可重用性

在使用MVC三層結(jié)構(gòu)技術(shù)的軟件設(shè)計(jì)中,代碼重用有非常明顯的效益和應(yīng)用場(chǎng)合。使用MVC框架,編碼工作需要逐步細(xì)化,可通過(guò)局部修改和重組,同時(shí)保持整體穩(wěn)定性,因此能大量節(jié)省程序設(shè)計(jì)人員的時(shí)間,因此為一般人所接受。

7.2 簡(jiǎn)潔性

MVC已給出軟件設(shè)計(jì)的框架,三層結(jié)構(gòu)技術(shù)使表示層,業(yè)務(wù)邏輯層及數(shù)據(jù)層徹底分離,由此開發(fā)出的軟件代碼易于進(jìn)行模塊設(shè)計(jì),功能分工更是簡(jiǎn)潔易于設(shè)計(jì)開發(fā)和使用掌握。

7.3 可移植性

功能模塊的設(shè)計(jì)在該模式下易于實(shí)現(xiàn),軟件框架已給出,需要實(shí)現(xiàn)各種功能模塊,三層結(jié)構(gòu)模塊的徹底分離,使軟件設(shè)計(jì)的功能模塊易于獨(dú)立實(shí)現(xiàn),并通過(guò)接口連接,實(shí)現(xiàn)數(shù)據(jù)和控制的交互。需要做得很大一部分工作是各個(gè)功能的細(xì)化,和獨(dú)立實(shí)現(xiàn),各個(gè)模塊的耦合性低,可移植性增強(qiáng)。

7.4 可擴(kuò)展型

軟件各個(gè)部分和各個(gè)功能模塊通過(guò)接口連接,更能的增減通過(guò)接口連接功能模塊實(shí)現(xiàn),因此軟件的可擴(kuò)展型非常高和容易實(shí)現(xiàn),要做好軟件模塊的接口設(shè)計(jì)和功能代碼封裝。

7.5 可維護(hù)性

簡(jiǎn)潔的框架流程和模塊設(shè)計(jì)思想,使軟件的可讀性增高,代碼之間的耦合性低,和較高的可移植性,帶來(lái)了軟件維護(hù)工作的便利。使用MVC和三層結(jié)構(gòu)技術(shù)使系統(tǒng)的可維護(hù)性顯著增強(qiáng)和可行。

8.結(jié)束語(yǔ)

MVC框架三層結(jié)構(gòu)技術(shù)在軟件設(shè)計(jì)和開發(fā)中有著廣泛的應(yīng)用市場(chǎng)和開發(fā)效益,隨著Web和數(shù)據(jù)庫(kù)技術(shù)的發(fā)展和推廣,具有重要的作用和地位。MVC是一種軟件框架,三層結(jié)構(gòu)技術(shù)體現(xiàn)出一種設(shè)計(jì)思想。本文簡(jiǎn)要介紹了MVC和三層結(jié)構(gòu)技術(shù)與區(qū)別,以及主要應(yīng)用(包括在B/S的應(yīng)用),并對(duì)MVC和三層結(jié)構(gòu)技術(shù)開發(fā)軟件的性能做了重要闡述,具有重要的研究意義。

參考文獻(xiàn)

[1] 溫昱.軟件架構(gòu)設(shè)計(jì)[M].北京:電子工業(yè)出版,2007.

[2] 徐愛蘭.計(jì)算機(jī)軟件開發(fā)中的分層技術(shù)探討[J].計(jì)算機(jī)光盤軟件與應(yīng)用, 2012,24:162-163.

[3] 孟勛.基于面向?qū)ο蠹夹g(shù)的學(xué)校人員管理系統(tǒng)的設(shè)計(jì)與研究[J].科技創(chuàng)新與應(yīng)用,2013,20:7-9.

[4] 百度百科 http://baike.baidu.com/view/687468.htm

[5] 百度百科 http://baike.baidu.com/view/5432454.htm

猜你喜歡
代碼框架服務(wù)器
框架
廣義框架的不相交性
通信控制服務(wù)器(CCS)維護(hù)終端的設(shè)計(jì)與實(shí)現(xiàn)
創(chuàng)世代碼
創(chuàng)世代碼
創(chuàng)世代碼
創(chuàng)世代碼
WTO框架下
中國(guó)服務(wù)器市場(chǎng)份額出爐
得形忘意的服務(wù)器標(biāo)準(zhǔn)