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

MVC一體化開(kāi)發(fā)研究

2009-06-22 03:41:14孔凡興
新媒體研究 2009年20期

孔凡興

[摘要]針對(duì)傳統(tǒng)MVC設(shè)計(jì)模式的缺點(diǎn),結(jié)合結(jié)構(gòu)型模式中Facade,Bridge和Dynamic Proxy模式設(shè)計(jì)理念,提出一種分布式系統(tǒng)的優(yōu)化Mvc模型,并將該模型應(yīng)用到J2EE在線考試管理系中。實(shí)踐表明,優(yōu)化的MVC型在應(yīng)用中具有良好的可重用性和擴(kuò)展性。

[關(guān)鍵詞]結(jié)構(gòu)型模式Facade Bridge MVC

中圖分類(lèi)號(hào):TP3立獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1671--7597(2009)1020076--01

設(shè)計(jì)模式是一套被反復(fù)使用、經(jīng)過(guò)驗(yàn)證的設(shè)計(jì)經(jīng)驗(yàn)的總結(jié),是在某一情景下類(lèi)似問(wèn)題的重復(fù)性解決方案。使用設(shè)計(jì)模式可改善代碼的可維護(hù)性和可重用性,讓開(kāi)發(fā)者從一個(gè)更高的視角進(jìn)行設(shè)計(jì)思考。然而,面對(duì)新的更加復(fù)雜的應(yīng)用需求,迫切需要尋找和設(shè)計(jì)更有效的設(shè)計(jì)模式來(lái)指導(dǎo)應(yīng)用程序開(kāi)發(fā)過(guò)程。

Model-Yiew-Control(MVC)模式是目前國(guó)內(nèi)外較流行、高效的設(shè)計(jì)模式之一。然而傳統(tǒng)的MVC模式還存在一些不盡人意的地方,控制器與模型之間保持清晰的界限,不同層次之間的頻繁的通信會(huì)消耗大量的系統(tǒng)資源;每個(gè)控制器直接與業(yè)務(wù)邏輯相關(guān)聯(lián),當(dāng)業(yè)務(wù)邏輯改變時(shí),需改變與該業(yè)務(wù)相應(yīng)的控制器;對(duì)不同類(lèi)型數(shù)據(jù)的低效率訪問(wèn),模型操作的接口不同,需要多次調(diào)用才能獲得需要的數(shù)據(jù)。為克服MVC模式以上的缺點(diǎn),結(jié)合Fa-cade,Bridge和Dynamic Proxy幾種典型模式各自的特點(diǎn)來(lái)改進(jìn)傳統(tǒng)MVC模式的不足,從而解決傳統(tǒng)MVC模式中信息通信資源消耗大、控制器與業(yè)務(wù)邏輯高耦合等缺點(diǎn),提高了系統(tǒng)的靈活性和開(kāi)發(fā)效率。

一、優(yōu)化的MVC設(shè)計(jì)模式

(一)引入Facade模式思想

問(wèn)題描述:由于MVC在不同程序邏輯之間要保持清晰的界限,因此在不同層次之間的通信會(huì)有性能上的損失,控制器與模型之間的回路信息會(huì)消耗大量的系統(tǒng)資源。

Facade模式的思想是提供一個(gè)統(tǒng)一的高層次接口,使得子系統(tǒng)更容易調(diào)用。在Mvc模式中引入Facade模型,將復(fù)雜的業(yè)務(wù)邏輯分成多個(gè)子系統(tǒng),F(xiàn)acade模式采用Session Bean(會(huì)話Bean)作為較高邏輯提供統(tǒng)一的接口,將系統(tǒng)的業(yè)務(wù)邏輯集中,從而降低客戶(hù)端與服務(wù)器之間的耦合度,降低系統(tǒng)的復(fù)雜性。在分布式環(huán)境中Facade模型的引入為遠(yuǎn)程對(duì)象提供了粗粒度的訪問(wèn),減少客戶(hù)端與服務(wù)器之間頻繁的調(diào)用,提高了系統(tǒng)性能。

(二)引入Bridge模式思想

問(wèn)題描述:MVC中每個(gè)控制器直接與業(yè)務(wù)邏輯相關(guān)聯(lián),當(dāng)業(yè)務(wù)邏輯改變時(shí),需改變與該業(yè)務(wù)相關(guān)的控制器。Bridge的主要思想是將抽象與實(shí)現(xiàn)分離,使它們可以獨(dú)立地變化,當(dāng)僅使用Session Facade模式時(shí),客戶(hù)端與EJB(Enterprise Java Bean)層緊密的耦合,形成控制器和業(yè)務(wù)邏輯的強(qiáng)依賴(lài)關(guān)系。Bridge模式在抽象類(lèi)和它的實(shí)現(xiàn)類(lèi)之間提供一個(gè)分層,控制一個(gè)對(duì)象到另一個(gè)對(duì)象的訪問(wèn),因此,采用Bridge來(lái)創(chuàng)建中間構(gòu)件可以分離客戶(hù)端和Sesslon Bean之間耦合關(guān)系。在實(shí)際應(yīng)用,將同組業(yè)務(wù)邏輯設(shè)計(jì)成為抽象類(lèi),由具體的業(yè)務(wù)類(lèi)邏輯來(lái)實(shí)現(xiàn),應(yīng)用Java反向映射機(jī)制,控制器使用XML分析器來(lái)根據(jù)不同的模塊配置進(jìn)行Bridge抽象類(lèi)實(shí)例化,再調(diào)用其方法,而不需要知道它請(qǐng)求的具體行為。Bridge在抽象類(lèi)與實(shí)現(xiàn)之間,起到了橋梁作用,使控制器和業(yè)務(wù)邏輯可以獨(dú)立變化。

(三)引入Dynamio Proxy模式思想

問(wèn)題描述:HVC中模型對(duì)不同類(lèi)型數(shù)據(jù)訪問(wèn)效得需要的數(shù)據(jù)。DynamicProxy模式通過(guò)在運(yùn)行期構(gòu)建一個(gè)對(duì)接口的動(dòng)態(tài)實(shí)現(xiàn)類(lèi)來(lái)對(duì)目標(biāo)對(duì)象的代理,它在對(duì)間提供一個(gè)接口層,控制一個(gè)對(duì)象到另一個(gè)對(duì)象訪問(wèn)。利用Dynamic Proxy模式定義訪問(wèn)不同數(shù)源的接口,針對(duì)數(shù)據(jù)源不同類(lèi)型在實(shí)現(xiàn)的類(lèi)中定不同數(shù)據(jù)源的訪問(wèn)方法,獲取和操作數(shù)據(jù),能同時(shí)持多個(gè)數(shù)據(jù)庫(kù)。這樣當(dāng)數(shù)據(jù)庫(kù)類(lèi)型更換時(shí),不會(huì)及到商業(yè)邏輯代碼的大量修改。J2髓應(yīng)用中,Session Bean一般和客戶(hù)端應(yīng)用是一一對(duì)應(yīng),而和據(jù)庫(kù)聯(lián)系緊密的是Entity Bean(實(shí)體Bean),Proxy式實(shí)質(zhì)是在Entity Bean和數(shù)據(jù)源之間又多了一ProxyDAO的數(shù)據(jù)訪問(wèn)對(duì)象。Dynamic Proxy的引入系統(tǒng)的模型業(yè)務(wù)與數(shù)據(jù)存取分離,模型業(yè)務(wù)類(lèi)只責(zé)數(shù)據(jù)的操作,不涉及具體的數(shù)據(jù)源,當(dāng)數(shù)據(jù)發(fā)生化時(shí),不影響系統(tǒng)的業(yè)務(wù)處理。

二、典型的網(wǎng)絡(luò)應(yīng)用

(一)應(yīng)用實(shí)例

以J2EE架構(gòu)在線考試試卷管理系統(tǒng)為例來(lái)明采用優(yōu)化MVC的分布式應(yīng)用模型的優(yōu)點(diǎn)。圖的UML的序列圖表示該系統(tǒng)進(jìn)行試卷管理的業(yè)流程,實(shí)現(xiàn)標(biāo)準(zhǔn)化試卷資源的數(shù)據(jù)庫(kù)管理,試卷資的共享和快速分發(fā),為學(xué)生用戶(hù)提供在線測(cè)試功能。

(二)具體的實(shí)現(xiàn)方法

1以試卷管理為例,將考試系統(tǒng)中的添加試卷、查試卷等業(yè)務(wù)子系統(tǒng)提供一個(gè)基于工作流的接口,入Facade模式。通過(guò)PaperFacade會(huì)話Bean進(jìn)行業(yè)務(wù)邏輯封裝,簡(jiǎn)化了原系統(tǒng)設(shè)計(jì),實(shí)現(xiàn)示例如下。publicclass PaperFacade implements SessionBean。以本例中試卷申請(qǐng)業(yè)務(wù)為例,采用傳統(tǒng)MVC模式Controller必須與數(shù)據(jù)實(shí)體對(duì)象直接遠(yuǎn)程交互,進(jìn)行一次試卷申請(qǐng)至少需要2次遠(yuǎn)程調(diào)用,而加入Facade層后在一個(gè)事務(wù)中就可以完成,而且將訪問(wèn)的多個(gè)數(shù)據(jù)屬性封裝到一個(gè)對(duì)象中傳遞減少網(wǎng)絡(luò)傳輸資源消耗。可見(jiàn),通過(guò)Facade會(huì)話層實(shí)現(xiàn)對(duì)事務(wù)的管理,避免了分布式對(duì)象之間遠(yuǎn)程調(diào)用的資源消耗。減輕控制器的負(fù)擔(dān),從而降低控制器和模式耦合。

2加入Bridge模式的Web應(yīng)用。針對(duì)控制器與業(yè)務(wù)方法之間過(guò)于緊密問(wèn)題,解決方法是將抽象類(lèi)和它的實(shí)現(xiàn)部分放在不同的層次結(jié)構(gòu)。以試卷管理為例,將試卷管理分離成抽象類(lèi)AbsAdmin和它的實(shí)現(xiàn)類(lèi)^dminPaperImpl,業(yè)務(wù)操作類(lèi)(增加、刪除試卷)擴(kuò)展AdminPaperlmpl,并實(shí)現(xiàn)具體的業(yè)務(wù)操作action方法。在AbsAdmin類(lèi)中創(chuàng)建私有的AdminPaperImpl成員變量,在action方法調(diào)用adminimpl的業(yè)務(wù)方法。這樣就可以在控制器動(dòng)態(tài)決定具體執(zhí)行哪個(gè)業(yè)務(wù)方法,由具體的業(yè)務(wù)類(lèi)進(jìn)行實(shí)例化RefinedAbstration類(lèi)。

主站蜘蛛池模板: 日韩人妻无码制服丝袜视频| 日韩精品资源| 热re99久久精品国99热| 波多野结衣爽到高潮漏水大喷| 无码免费的亚洲视频| 欧美成人a∨视频免费观看| 亚洲色成人www在线观看| 91久久青青草原精品国产| 欧美啪啪视频免码| 欧美不卡视频在线观看| 国产精品视频第一专区| 欧美另类一区| 久久免费视频播放| 白浆视频在线观看| 国产9191精品免费观看| 波多野结衣视频一区二区| 国产91小视频在线观看| 国产精品视频3p| 狠狠躁天天躁夜夜躁婷婷| 国产精品视频a| 久久综合色天堂av| 日韩黄色精品| 中文字幕在线看| 久热中文字幕在线| 狠狠五月天中文字幕| 香蕉精品在线| 国产99在线观看| 国产精女同一区二区三区久| 色老头综合网| 国产00高中生在线播放| 亚洲综合婷婷激情| 在线永久免费观看的毛片| 久久男人视频| 播五月综合| 国产va欧美va在线观看| 91精品国产麻豆国产自产在线| 91久久偷偷做嫩草影院| 中文成人无码国产亚洲| 天天色综合4| 欧美翘臀一区二区三区| 九九久久99精品| 国产免费久久精品99re丫丫一| 波多野结衣一区二区三区88| 国产第一页亚洲| 亚洲精品日产精品乱码不卡| 亚洲,国产,日韩,综合一区| 一级看片免费视频| 岛国精品一区免费视频在线观看 | 久久久精品国产亚洲AV日韩| 麻豆国产在线不卡一区二区| 91视频首页| 激情无码字幕综合| 欧美成一级| 国产精品分类视频分类一区| 97亚洲色综久久精品| 亚洲区一区| 日本免费一级视频| www.99在线观看| 亚洲午夜福利精品无码| 日韩天堂在线观看| 亚洲天堂.com| 91色在线观看| 色视频久久| 色综合久久久久8天国| 天堂在线www网亚洲| 99re66精品视频在线观看| 婷婷综合在线观看丁香| 久久久久人妻一区精品| 成人在线不卡视频| 国产91av在线| 欧美日韩在线成人| 国产精品无码AⅤ在线观看播放| 福利在线一区| 欧美日韩精品综合在线一区| 国产亚洲欧美日韩在线一区| 国产精品成人免费视频99| 国产成人综合久久精品尤物| 亚洲国产综合自在线另类| 青青草原偷拍视频| 欧美一级在线| 99草精品视频| Jizz国产色系免费|