亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2013-04-29 00:44:03孟勛
        軟件工程 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ù)在軟件開(kāi)發(fā)(尤其在Web技術(shù)下的數(shù)據(jù)庫(kù)系統(tǒng)開(kāi)發(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ò)開(kāi)發(fā)平臺(tái)以代碼和架構(gòu)的形式表示出來(lái),開(kāi)發(fā)者通過(guò)框架提供的接口進(jìn)行功能開(kāi)發(fā),可以復(fù)寫(xiě)框架代碼,而不必從開(kāi)始編寫(xiě)。框架提供了一些軟件功能的默認(rèn)實(shí)現(xiàn),在特定的開(kāi)發(fā)平臺(tái)下,就是說(shuō)開(kāi)發(fā)平臺(tái)已經(jīng)代替開(kāi)發(fā)者實(shí)現(xiàn)了一些通用功能并提供了相應(yīng)的代碼,開(kāi)發(fā)者只需重寫(xiě)或添加功能代碼。注意:框架內(nèi)部代碼不可重寫(xiě);應(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),而框架則是開(kāi)發(fā)平臺(tái)給出的設(shè)計(jì)和代碼的混合體;設(shè)計(jì)模式與語(yǔ)言無(wú)關(guān)的,具體設(shè)計(jì)受制于開(kāi)發(fā)平臺(tái)框架的具體實(shí)現(xiàn)環(huán)境。利用框架開(kāi)發(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ā)揮,開(kāi)發(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ù)開(kāi)發(fā)而言就是在客戶端與數(shù)據(jù)庫(kù)之間加入了一個(gè)中間層,也叫組件層。

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

        (1)表現(xiàn)層(UI):就是展現(xiàn)給用戶的界面,即用戶在使用一個(gè)系統(tǒng)的時(shí)候展現(xiàn)在操作員或用戶的所見(jià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ì)和開(kāi)發(fā)者是Craig R.McClanahan。Struts 是Java Web MVC框架中不爭(zhēng)的王者。

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

        (3)Hibernate:Hibernate是一個(gè)開(kāi)放源代碼的對(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ì)代碼繁瑣,代碼模塊間耦合性高,可重用性差,開(kāi)發(fā)更簡(jiǎn)潔地設(shè)計(jì)一款代碼整潔,耦合性低,可重用性更高,可擴(kuò)展性更好的軟件,MVC與三層結(jié)構(gòu)技術(shù)被采用。

        (1)Hibernate:Hibernate是一個(gè)開(kāi)放源代碼的對(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軟件開(kāi)發(fā)中,顯示頁(yè)面和邏輯頁(yè)面,代碼耦合性高,可維護(hù)性差,采用MVC架構(gòu),和三層結(jié)構(gòu)技術(shù)有效地節(jié)約了代碼開(kāi)發(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)用于分布式開(kāi)發(fā),極大地提高了代碼的可讀性和可移植性?;贏SP的集中式和Web Service的分布式開(kāi)發(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ù)層徹底分離,由此開(kāi)發(fā)出的軟件代碼易于進(jìn)行模塊設(shè)計(jì),功能分工更是簡(jiǎn)潔易于設(shè)計(jì)開(kāi)發(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ì)和開(kāi)發(fā)中有著廣泛的應(yīng)用市場(chǎng)和開(kāi)發(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ù)開(kāi)發(fā)軟件的性能做了重要闡述,具有重要的研究意義。

        參考文獻(xiàn)

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

        [2] 徐愛(ài)蘭.計(jì)算機(jī)軟件開(kāi)發(fā)中的分層技術(shù)探討[J].計(jì)算機(jī)光盤(pán)軟件與應(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框架下
        法大研究生(2017年1期)2017-04-10 08:55:06
        得形忘意的服務(wù)器標(biāo)準(zhǔn)
        計(jì)算機(jī)網(wǎng)絡(luò)安全服務(wù)器入侵與防御
        女女同性av一区二区三区免费看| 无码av免费一区二区三区| 精品推荐国产精品店| 人妻无码中文专区久久AV| 国产一级黄色录像| 黄色三级一区二区三区| 日本免费三级一区二区| 亚洲av成熟国产一区二区| 日本成本人片免费网站| 又硬又粗又大一区二区三区视频 | 美女和男人一起插插插| 国产日韩欧美一区二区东京热| 国产精品免费大片| 亚洲女同成av人片在线观看 | 色噜噜狠狠狠综合曰曰曰| 日韩电影一区二区三区| 久久狠狠第一麻豆婷婷天天| 大香蕉久久精品一区二区字幕| 国产女主播一区二区三区| 中国女人做爰视频| 亚洲成a人片在线网站| 男女啪啪免费视频网址| 亚洲av无码精品无码麻豆| 久青草久青草视频在线观看| 日本精品一区二区三本中文| 中文字幕熟女激情50路| 欧美肥婆性猛交xxxx| 美女自卫慰黄网站| 人妻少妇精品一区二区三区| 国产av天堂亚洲av刚刚碰| 国产精品欧美一区二区三区不卡| 国产成人啪精品午夜网站| 久久精品国产福利亚洲av| 色窝窝亚洲av网在线观看| 人人添人人澡人人澡人人人人| 久久99精品这里精品动漫6| 亚洲不卡av一区二区三区四区| 精品久久久久久成人av| 久草午夜视频| 中文亚洲一区二区三区| 粗大的内捧猛烈进出看视频|