欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

J2EE模型及J2EE設(shè)計(jì)模式如何分析

J2EE模型及J2EE設(shè)計(jì)模式如何分析,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

云岡網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)公司自2013年創(chuàng)立以來(lái)到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。

目前大多數(shù)企業(yè)采用J2EE技術(shù)的結(jié)構(gòu)設(shè)計(jì)與解決方案。對(duì)于我們學(xué)習(xí)和研究J2EE體系結(jié)構(gòu)來(lái)說(shuō),了解與掌握J(rèn)2EE體系結(jié)構(gòu)的設(shè)計(jì)方法及一些常用模式是必須的;模型-視圖-控制(model-view-control,簡(jiǎn)稱MVC)結(jié)構(gòu)是目前最常見(jiàn)的J2EE應(yīng)用所基于的體系結(jié)構(gòu),MVC主要適用于交互式的Web應(yīng)用,尤其是存在大量頁(yè)面及多次客戶訪問(wèn)及數(shù)據(jù)顯示;相比較而言,一個(gè)工作流體系結(jié)構(gòu)更多應(yīng)用于過(guò)程控制和較少交互的情況下;除了體系結(jié)構(gòu)外,J2EE的設(shè)計(jì)模式對(duì)我們解決應(yīng)用系統(tǒng)的設(shè)計(jì)也有很大的幫助。

一、J2EE的模型-視圖-控制(MVC)體系結(jié)構(gòu)

模型-視圖-控制結(jié)構(gòu)是交互式應(yīng)用程序廣泛使用的一種體系結(jié)構(gòu)。它有效地在存儲(chǔ)和展示數(shù)據(jù)的對(duì)象中區(qū)分功能模塊以降低它們之間的連接度,這種體系結(jié)構(gòu)將傳統(tǒng)的輸入、處理和輸入模型轉(zhuǎn)化為圖形顯示的用戶交互模型,或者換一種說(shuō)法,是多層次的Web商業(yè)應(yīng)用;MVC體系結(jié)構(gòu)具有三個(gè)層面:模型(Model)、視圖(View)和控制(Controller),每個(gè)層面有其各自的功能作用,MVC體系結(jié)構(gòu)如下:

J2EE模型及J2EE設(shè)計(jì)模式如何分析

圖1 MVC 體系結(jié)構(gòu)

模型層負(fù)責(zé)表達(dá)和訪問(wèn)商業(yè)數(shù)據(jù),執(zhí)行商業(yè)邏輯和操作。也就是說(shuō),這一層就是現(xiàn)實(shí)生活中功能的軟件模擬;在模型層變化的時(shí)候,它將通知視圖層并提供后者訪問(wèn)自身狀態(tài)的能力,同時(shí)控制層也可以訪問(wèn)其功能函數(shù)以完成相關(guān)的任務(wù)。

視圖層負(fù)責(zé)顯示模型層的內(nèi)容。它從模型層取得數(shù)據(jù)并指定這些數(shù)據(jù)如何被顯示出來(lái)。在模型層變化的時(shí)候,它將自動(dòng)更新。另外視圖層也會(huì)將用戶的輸入傳送給控制器。

控制層負(fù)責(zé)定義應(yīng)用程序的行為。它可以分派用戶的請(qǐng)求并選擇恰當(dāng)?shù)囊晥D以用于顯示,同時(shí)它也可以解釋用戶的輸入并將它們映射為模型層可執(zhí)行的操作;在一個(gè)圖形界面中,常見(jiàn)的用戶輸入包括點(diǎn)擊按鈕和菜單選擇。在Web應(yīng)用中,它包括對(duì)Web層的HTTP GET和POST的請(qǐng)求;控制層可以基于用戶的交互和模型層的操作結(jié)果來(lái)選擇下一個(gè)可以顯示的視圖,一個(gè)應(yīng)用程序通常會(huì)基于一組相關(guān)功能設(shè)定一個(gè)控制層的模塊,甚至一些應(yīng)用程序會(huì)根據(jù)不同的用戶類型具有不同的控制層設(shè)定,這主要是由于不同用戶的視圖交互和選擇也是不同的。
在模型層、視圖層和控制層之間劃分責(zé)任可以減少代碼的重復(fù)度,并使應(yīng)用程序維護(hù)起來(lái)更簡(jiǎn)單。同時(shí)由于數(shù)據(jù)和商務(wù)邏輯的分開(kāi),在新的數(shù)據(jù)源加入和數(shù)據(jù)顯示變化的時(shí)候,數(shù)據(jù)處理也會(huì)變得更簡(jiǎn)單。

二、J2EE設(shè)計(jì)模式

一個(gè)設(shè)計(jì)模式描述了對(duì)于特定設(shè)計(jì)問(wèn)題被驗(yàn)證的解決方案,它綜合了所有開(kāi)發(fā)者對(duì)這個(gè)問(wèn)題所在領(lǐng)域的知識(shí)和見(jiàn)解;同時(shí)也是對(duì)于常見(jiàn)問(wèn)題的可重用方案,它們一般適用于單個(gè)問(wèn)題,但是組織在一起就可以提供整個(gè)企業(yè)系統(tǒng)的解決方案。下面我們列舉八種常用于J2EE平臺(tái)的設(shè)計(jì)模式,并對(duì)每種模式作簡(jiǎn)單的介紹,便于大家學(xué)習(xí)、理解與靈活應(yīng)用。

1、前控制器

前控制器(front controller)主要提供一種可以集中式管理請(qǐng)求的控制器,一個(gè)前控制器可以接受所有的客戶請(qǐng)求,將每個(gè)請(qǐng)求遞交給相應(yīng)的請(qǐng)求句柄,并適當(dāng)?shù)仨憫?yīng)用戶。

前控制器也是表示層的設(shè)計(jì)模式,它的出現(xiàn)主要是由于表示層通常需要控制和協(xié)調(diào)來(lái)自不同用戶的多個(gè)請(qǐng)求,而這種控制機(jī)制又根據(jù)不同的需要,可能會(huì)集中式控制或分散式控制。換句話說(shuō),就是應(yīng)用系統(tǒng)需要對(duì)于表示層的請(qǐng)求提供一個(gè)集中式控制模塊,以提供各種系統(tǒng)服務(wù),包括內(nèi)容提取、視圖管理和瀏覽,如果系統(tǒng)中沒(méi)有這種集中式控制模塊或控制機(jī)制,每個(gè)不同的系統(tǒng)服務(wù)都需要進(jìn)行單獨(dú)的視圖處理,這樣代碼的重復(fù)性就會(huì)提高,致使系統(tǒng)開(kāi)發(fā)代價(jià)提高;同時(shí),如果沒(méi)有一個(gè)固定模塊管理視圖之間的瀏覽機(jī)制,致使其瀏覽功能下放于每個(gè)不同的視圖中,最終必將使得系統(tǒng)的可維護(hù)性受到破壞;本文中我們主要討論的是集中式控制模塊,而不是分散式控制,因?yàn)榍罢吒m合于大型的應(yīng)用系統(tǒng)。

基于上面所說(shuō)的問(wèn)題,研究人員提出了前控制器的設(shè)計(jì)模式。在這種模式中,控制器提供一個(gè)處理不同請(qǐng)求的控制點(diǎn),這里的處理工作包括安全事務(wù)、視圖選擇、錯(cuò)誤處理和響應(yīng)內(nèi)容的生成;通過(guò)將這些處理工作集中在一點(diǎn)進(jìn)行,大大地減低了Java代碼量,同時(shí)這種方法也可以減少在視圖模塊的程序邏輯,保證了在不同請(qǐng)求之間可以重用大量的邏輯代碼。通常,控制器都是和一個(gè)分派組件聯(lián)合工作的,分派組件主要是用于視圖管理和瀏覽,也就是為用戶選擇下一個(gè)應(yīng)該顯示的視圖,并同時(shí)提供對(duì)于相關(guān)顯示資源的控制。分派組件可以包含在控制器之內(nèi),或是在另外一個(gè)單獨(dú)的組件中;雖然前控制器模式推薦對(duì)于全部的請(qǐng)求使用統(tǒng)一處理,但是它也沒(méi)有限制在一個(gè)系統(tǒng)中只能具有一個(gè)控制器,在系統(tǒng)中的每個(gè)層次都可以具有多個(gè)控制器,并且映射至不同的系統(tǒng)服務(wù),下圖2顯示了前控制器的類圖。

J2EE模型及J2EE設(shè)計(jì)模式如何分析

圖2 前控制器的類圖

圖3顯示了前控制器的序列圖,表示一個(gè)控制器如何處理相關(guān)的請(qǐng)求。

J2EE模型及J2EE設(shè)計(jì)模式如何分析

圖3前控制器序列圖

下面我們來(lái)討論一下圖3的各個(gè)組件。

2、控制器

控制器(controller)是負(fù)責(zé)處理各種客戶請(qǐng)求的控制點(diǎn),并可以將一定的職能(如用戶認(rèn)證等)下放給幫助類。

(1)分派組件(Dispatcher)。一個(gè)分派組件主要是用于視圖的管理和瀏覽,為用戶選擇下一個(gè)可以顯示的視圖,并管理相關(guān)的顯示資源;分派組件可以在一個(gè)控制器內(nèi)運(yùn)行,或者作為一個(gè)單獨(dú)的組件與控制器協(xié)同工作;開(kāi)發(fā)人員可以在分派組件中實(shí)現(xiàn)靜態(tài)的視圖分派技術(shù),或是復(fù)雜的動(dòng)態(tài)分派。

(2)幫助類(Helper)。幫助類負(fù)責(zé)幫助一個(gè)視圖或控制器來(lái)完成其處理工作,因此,幫助類具有多項(xiàng)職責(zé),包括收集數(shù)據(jù)、存儲(chǔ)中間數(shù)據(jù)模型等;另外,幫助類也可以在保證數(shù)據(jù)完整性和準(zhǔn)確性的情況下,為不同顯示需求修改數(shù)據(jù)模型;也就是說(shuō),根據(jù)用戶的請(qǐng)求,幫助類可以向視圖提供未經(jīng)處理的原始數(shù)據(jù),或是已經(jīng)格式化后的Web內(nèi)容,一個(gè)視圖同時(shí)可以和多個(gè)幫助類協(xié)同工作,而后者通常是由JavaBeans和標(biāo)簽(tag)實(shí)現(xiàn)的。

3、視圖

視圖(view)負(fù)責(zé)向用戶顯示信息,而幫助類則負(fù)責(zé)支持視圖的工作,即打包和建立相應(yīng)的數(shù)據(jù)模型,下面我們介紹幾種可以實(shí)現(xiàn)控制器的方法。

1)基于Servlet前控制器
這種方法建議使用servlet來(lái)實(shí)現(xiàn)一個(gè)控制器,盡管在語(yǔ)法上相差無(wú)幾,但是它比使用JSP來(lái)實(shí)現(xiàn)要優(yōu)越一些;因?yàn)榭刂破魉M(jìn)行的請(qǐng)求處理,多數(shù)都是與程序運(yùn)行和控制流動(dòng)相關(guān)的,這些處理工作雖然與顯示模式相關(guān),但是實(shí)際上是邏輯獨(dú)立的,所以它們更適合在servlet中實(shí)現(xiàn),而不是JSP技術(shù)中;使用這種方法也存在一些弱點(diǎn),比如說(shuō)servlet無(wú)法使用JSP運(yùn)行環(huán)境的資源,如請(qǐng)求參數(shù)等,但是這個(gè)弱點(diǎn)也不是不能解決的,我們可以在servlet中建立相關(guān)的句柄來(lái)訪問(wèn)同樣的資源,當(dāng)然其代碼會(huì)變得繁瑣一點(diǎn)。

2)基于JSP的前控制器
這種方法建議使用JSP頁(yè)面實(shí)現(xiàn)控制器,盡管語(yǔ)法上相同,但是Servlet方案要比其優(yōu)越一些;因?yàn)榭刂破魉幚淼倪壿嬕话愣疾皇怯嘘P(guān)顯示模式的,所以在JSP頁(yè)面中實(shí)現(xiàn)控制器似乎有點(diǎn)風(fēng)馬牛不相及;使用這種方法也不利于開(kāi)發(fā)團(tuán)隊(duì)的角色和職責(zé)的分配,即軟件開(kāi)發(fā)人員需要在負(fù)責(zé)顯示邏輯的JSP頁(yè)面中修改請(qǐng)求處理的代碼,通常,這種工作都是相當(dāng)復(fù)雜的,尤其考慮整個(gè)JSP頁(yè)面的編程、編譯、測(cè)試和調(diào)試錯(cuò)誤。

3)控制器之中的分派組件
如果分派組件沒(méi)有較多功能,開(kāi)發(fā)人員可以在控制器實(shí)現(xiàn)該組件。

4)基礎(chǔ)前端
基于使用servlet實(shí)現(xiàn)前控制器,這種方案建議實(shí)現(xiàn)一個(gè)控制器作為基礎(chǔ)類,這樣其他的控制器可以在其之上擴(kuò)展;這個(gè)基礎(chǔ)類可以包含一些通用的邏輯實(shí)現(xiàn),它的子類就會(huì)重載這些實(shí)現(xiàn)代碼,這種方法也有一定的缺陷,當(dāng)有許多子類繼承這個(gè)基礎(chǔ)類,并大量地重用代碼時(shí),那么就有可能出現(xiàn)一個(gè)類的改變會(huì)影響到所有子類的情況。

5)用過(guò)濾器實(shí)現(xiàn)前控制器

過(guò)濾器提供了與用戶請(qǐng)求的中心處理相類似的功能,也就是說(shuō),控制器的一些功能可以由過(guò)濾器來(lái)實(shí)現(xiàn),這種方案的過(guò)濾器主要負(fù)責(zé)處理請(qǐng)求的截取和解釋,而不是請(qǐng)求的處理和響應(yīng)的生成;通??梢詾閼?yīng)用系統(tǒng)提供一個(gè)核心控制點(diǎn),以處理所有的系統(tǒng)服務(wù)和程序邏輯,核心控制也就表明了所有的請(qǐng)求都可以簡(jiǎn)單地被跟蹤和記錄,從而方便各種服務(wù)功能的實(shí)施;當(dāng)然,它也存在一些缺點(diǎn),一個(gè)核心控制點(diǎn)的小問(wèn)題可能會(huì)引發(fā)系統(tǒng)的崩潰,但在應(yīng)用系統(tǒng)的實(shí)際開(kāi)發(fā)中,這并不是個(gè)問(wèn)題,因?yàn)橥ǔN覀兌紩?huì)在同一個(gè)層面上實(shí)現(xiàn)多個(gè)控制器,從而避免了這個(gè)缺陷;在控制器中,開(kāi)發(fā)人員可以很方便地實(shí)現(xiàn)一個(gè)檢查安全機(jī)制的組件,從而可以在最外層屏蔽對(duì)系統(tǒng)的惡意訪問(wèn),另外使用控制器也會(huì)提高系統(tǒng)模塊的可重用性,尤其在控制器同時(shí)使用幫助類的時(shí)候。

4、視圖幫助

視圖幫助(View helper)是屬于表示層的設(shè)計(jì)模式,一個(gè)視圖幫助可以包含相關(guān)視圖中的數(shù)據(jù)訪問(wèn)和內(nèi)容顯示的邏輯,并可以精煉簡(jiǎn)化視圖;顯示邏輯主要是關(guān)于如何格式化頁(yè)面上的數(shù)據(jù),而訪問(wèn)邏輯則是關(guān)于如何取出數(shù)據(jù),視圖幫助通常用來(lái)顯示數(shù)據(jù)的JSP標(biāo)記(tag)或是讀取數(shù)據(jù)的JavaBean。
這種設(shè)計(jì)模式的出現(xiàn)主要是由于目前的應(yīng)用系統(tǒng)通常需要實(shí)時(shí)地開(kāi)發(fā)顯示內(nèi)容,并且能處理動(dòng)態(tài)的程序數(shù)據(jù)。如果這些程序數(shù)據(jù)的訪問(wèn)邏輯和顯示邏輯的關(guān)系過(guò)于緊密,則系統(tǒng)的表示層就會(huì)經(jīng)常需要改動(dòng),從而系統(tǒng)的靈活性、重用性會(huì)大大地受到破壞;同時(shí)在相同的模塊中實(shí)現(xiàn)訪問(wèn)邏輯和顯示邏輯將會(huì)影響系統(tǒng)的模塊化,也會(huì)使得開(kāi)發(fā)團(tuán)隊(duì)的任務(wù)劃分不清。

一個(gè)視圖通常包含格式化信息,并將其處理任務(wù)分發(fā)給自己的幫助類,后者通常是用JavaBeans或標(biāo)記(tag)來(lái)實(shí)現(xiàn)的,幫助類同時(shí)可以存儲(chǔ)視圖的中間數(shù)據(jù)模型并實(shí)現(xiàn)數(shù)據(jù)適配器的功能,即適當(dāng)?shù)剞D(zhuǎn)化數(shù)據(jù)格式;開(kāi)發(fā)人員可以采用多種方法實(shí)現(xiàn)視圖組件,通常,開(kāi)發(fā)人員可以使用JSP來(lái)實(shí)現(xiàn),并且這也是一種值得推薦的方法。當(dāng)然,相應(yīng)地開(kāi)發(fā)人員也可以使用Servlet來(lái)實(shí)現(xiàn)它,將視圖中一定的程序邏輯植入到幫助類中,會(huì)有利于應(yīng)用系統(tǒng)的模塊化和可重用性。系統(tǒng)可以使用同一個(gè)幫助類為不同的用戶顯示不同的數(shù)據(jù)信息,并在不同的顯示格式下顯示;通常,如果開(kāi)發(fā)人員發(fā)現(xiàn)視圖的JSP頁(yè)面中存在大量的腳本代碼時(shí),就可以考慮使用視圖幫助這種模式了,因?yàn)樵谶@種情況下,基本都是程序邏輯和顯示邏輯具有過(guò)于緊密的聯(lián)系;這時(shí)開(kāi)發(fā)人員可以將一些適用于所有類型的請(qǐng)求的邏輯處理放置到一定的幫助類中,而根據(jù)需要,也可以將另外一些邏輯處理放置在視圖層上的其他程序模塊中,比如說(shuō)以前討論過(guò)的截取過(guò)濾器。 

視圖幫助這種模式的設(shè)計(jì)理念主要是分離應(yīng)用系統(tǒng)的邏輯職責(zé),下面我們提供一些圖示,以方便大家更好地理解這種模式。

圖4以類圖(class diagram)的形式說(shuō)明了視圖幫助的系統(tǒng)結(jié)構(gòu)。

J2EE模型及J2EE設(shè)計(jì)模式如何分析

圖4 視圖幫助類圖

圖5表示了視圖幫助模式的序列圖,它表明了這種模式中的主要成分及互相之間的運(yùn)行情況;不過(guò)需要說(shuō)明的是,在很多應(yīng)用系統(tǒng)中,客戶端和視圖層之間會(huì)存在一個(gè)控制器加以適當(dāng)?shù)恼{(diào)節(jié)。

J2EE模型及J2EE設(shè)計(jì)模式如何分析

圖5視圖幫助序列圖

在類圖表中,大家可以發(fā)現(xiàn),可能存在沒(méi)有任何相關(guān)幫助類的視圖,這種情況下,通常代表視圖的JSP頁(yè)面會(huì)有一些靜態(tài)的或小數(shù)量的腳本代碼。

這里我們對(duì)于序列圖中的各個(gè)元素加以簡(jiǎn)單的介紹:

(1)視圖(view)。視圖負(fù)責(zé)向用戶展示動(dòng)態(tài)數(shù)據(jù)信息,而幫助類則負(fù)責(zé)支持視圖的工作,即打包和建立相應(yīng)的數(shù)據(jù)模型。

(2)幫助類(helper)。一個(gè)幫助類負(fù)責(zé)幫助視圖或控制器完成相關(guān)的處理工作,包括收集數(shù)據(jù)、存儲(chǔ)中間模型等;幫助類也可以在保證數(shù)據(jù)完整性和準(zhǔn)確性的情況下,為不同顯示需求修改數(shù)據(jù)模型,也就是說(shuō),根據(jù)用戶的請(qǐng)求,幫助類可以向視圖提供未經(jīng)處理的原始數(shù)據(jù),或是已經(jīng)格式化后的Web內(nèi)容;一個(gè)視圖同時(shí)可以和多個(gè)幫助類協(xié)同工作,而后者通常是由JavaBeans和標(biāo)記(tag)實(shí)現(xiàn)的。

(3)值bean(ValueBean)。值bean實(shí)際上是用于存儲(chǔ)中間數(shù)據(jù)模型的幫助類的另一種叫法,例如在序列圖5中,business service就根據(jù)請(qǐng)求返回了一個(gè)值bean。

(4)業(yè)務(wù)服務(wù)(business service)。業(yè)務(wù)服務(wù)是指用戶試圖得到的,應(yīng)用系統(tǒng)可以提供的相關(guān)服務(wù);通常來(lái)說(shuō),業(yè)務(wù)服務(wù)可以通過(guò)一個(gè)業(yè)務(wù)代表(business delegate)來(lái)訪問(wèn),而后者主要是提供對(duì)于業(yè)務(wù)服務(wù)的控制和保護(hù)。

在應(yīng)用系統(tǒng)的視圖模塊中使用幫助類可以將不同的程序邏輯很好地分離開(kāi)來(lái),并在視圖模塊之外為開(kāi)發(fā)人員提供設(shè)計(jì)程序邏輯的空間;基于JavaBean和標(biāo)記(tag)所開(kāi)發(fā)的幫助類通常都可以被多個(gè)視圖模塊重用,因此也提高了組件的重用性和可維護(hù)性;把顯示邏輯從數(shù)據(jù)處理邏輯分離出來(lái),也有利于開(kāi)發(fā)團(tuán)隊(duì)中角色及人物的劃分;比如說(shuō),如果各種程序邏輯過(guò)于結(jié)合的話,軟件開(kāi)發(fā)人員可能需要在HTML,網(wǎng)頁(yè)中修改代碼而Web設(shè)計(jì)師則需要在處理數(shù)據(jù)訪問(wèn)的JSP中修改頁(yè)面布置,這些情況都可能會(huì)導(dǎo)致系統(tǒng)設(shè)計(jì)和開(kāi)發(fā)中由于不同技術(shù)人員的介入,而產(chǎn)生相關(guān)的問(wèn)題。

5、會(huì)話面

會(huì)話面(session facade)模式在合作的企業(yè)對(duì)象間調(diào)節(jié)操作,并將應(yīng)用函數(shù)合成一個(gè)單一簡(jiǎn)單的界面;它減少了類之間合作的復(fù)雜性,并使得類的調(diào)用者在該類變化的時(shí)候無(wú)需改動(dòng),這種模式通常以一個(gè)會(huì)話bean實(shí)現(xiàn),以用來(lái)隱藏底層ejb的復(fù)雜交互。

這種設(shè)計(jì)模式出現(xiàn)的背景在于EJB通常既包括程序數(shù)據(jù),又包括程序邏輯,而這些代碼都會(huì)通過(guò)一定的界面作用于客戶層,在多層次的J2EE平臺(tái)應(yīng)用程序中,就會(huì)造成一定的困難。

具體來(lái)說(shuō),在J2EE平臺(tái)上的多層次系統(tǒng)中,通常會(huì)存在以下的問(wèn)題:

(1)層次之間聯(lián)系過(guò)于緊密,客戶層和后端的業(yè)務(wù)對(duì)象具有較強(qiáng)的依賴關(guān)系;

(2)在客戶和服務(wù)器之間有多次方法調(diào)用,因而導(dǎo)致了Web性能方面的問(wèn)題;

(3)缺乏一定的客戶訪問(wèn)機(jī)制,使得一些后臺(tái)對(duì)象被隨便訪問(wèn)。

一個(gè)多層次的J2EE應(yīng)用程序通常具有很多由EJB實(shí)現(xiàn)的服務(wù)器端對(duì)象,它們通常負(fù)責(zé)提供系統(tǒng)服務(wù)、數(shù)據(jù)信息等,也就是說(shuō)作為業(yè)務(wù)對(duì)象,它們既包括相關(guān)的程序數(shù)據(jù),也包括其程序邏輯;在J2EE應(yīng)用系統(tǒng)中,負(fù)責(zé)程序邏輯的對(duì)象通常由會(huì)話bean實(shí)現(xiàn),而表示持久性存儲(chǔ),并在多個(gè)用戶間共享的對(duì)象則由實(shí)體bean來(lái)實(shí)現(xiàn);當(dāng)然,應(yīng)用系統(tǒng)的用戶需要訪問(wèn)企業(yè)對(duì)象來(lái)滿足自己的需求,如果企業(yè)對(duì)象向用戶提供接口,用戶可以直接地與相關(guān)對(duì)象通信,但是這樣一來(lái),用戶必須負(fù)責(zé)管理所調(diào)用的企業(yè)對(duì)象之間的關(guān)系,并且能夠處理其間的業(yè)務(wù)流程;然而,如果用戶和業(yè)務(wù)對(duì)象之間存在過(guò)于直接的交互,兩者的聯(lián)系就會(huì)過(guò)于緊密,同時(shí)也使得用戶過(guò)于依賴企業(yè)對(duì)象的具體實(shí)現(xiàn),并負(fù)責(zé)管理與交互過(guò)程有關(guān)的業(yè)務(wù)對(duì)象查找和創(chuàng)建,以及不同的對(duì)象間相互調(diào)用的關(guān)系,甚至一些時(shí)候用戶還需要管理多次調(diào)用之間的事務(wù)管理環(huán)節(jié)。

在用戶需求不斷增加時(shí),這也是應(yīng)用系統(tǒng)經(jīng)常發(fā)生的情況,用戶與不同的企業(yè)對(duì)象之間的交互也會(huì)變得越來(lái)越復(fù)雜,而企業(yè)對(duì)象可能需要一定內(nèi)部的更新才能滿足前者的需要,但是這樣的話用戶又需要根據(jù)企業(yè)對(duì)象實(shí)現(xiàn)的變化而做出相應(yīng)的改變,這種情況將為應(yīng)用系統(tǒng)帶來(lái)相當(dāng)大的麻煩;在訪問(wèn)EJB應(yīng)用系統(tǒng)時(shí),用戶需要與遠(yuǎn)程對(duì)象進(jìn)行交互。如果用戶直接與所有相關(guān)的業(yè)務(wù)對(duì)象交互的話,將帶來(lái)很大的Web負(fù)擔(dān);因?yàn)閷?duì)于每一個(gè)ejb的激活,都將產(chǎn)生一次遠(yuǎn)程的調(diào)用,而如果存在大量的系統(tǒng)用戶,用戶與對(duì)象間的交互就將為Web通信帶來(lái)很大的壓力,使系統(tǒng)性能受到很大破壞;如果用戶可以直接訪問(wèn)后端的企業(yè)對(duì)象,但是系統(tǒng)中又缺少一個(gè)統(tǒng)一的用戶訪問(wèn)機(jī)制,那么這些訪問(wèn)很有可能變得雜亂無(wú)章,引起系統(tǒng)性能的下降,甚至導(dǎo)致一些安全問(wèn)題。

為了解決以上的問(wèn)題,開(kāi)發(fā)人員可以采用會(huì)話面的設(shè)計(jì)模式,即使用會(huì)話bean來(lái)實(shí)現(xiàn)一個(gè)面(facade)來(lái)包含一個(gè)工作流中所有相關(guān)對(duì)象的交互;這個(gè)會(huì)話面負(fù)責(zé)管理業(yè)務(wù)對(duì)象,并向用戶提供一個(gè)統(tǒng)一的服務(wù)訪問(wèn)層,會(huì)話面可以面向底層對(duì)象的交互過(guò)程,并提供一個(gè)僅僅包含必須提供的接口的服務(wù)層,由此它將復(fù)雜的對(duì)象交互和用戶之間隔離開(kāi)來(lái); 會(huì)話面也負(fù)責(zé)管理企業(yè)數(shù)據(jù)和企業(yè)對(duì)象之間的交互,并表達(dá)其中需要的企業(yè)邏輯,因此會(huì)話面也可以管理企業(yè)對(duì)象之間的作用關(guān)系;同時(shí),根據(jù)工作流的需要,會(huì)話面也管理對(duì)象的創(chuàng)建、查找、修改和刪除。

看完上述內(nèi)容,你們掌握J(rèn)2EE模型及J2EE設(shè)計(jì)模式如何分析的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

標(biāo)題名稱:J2EE模型及J2EE設(shè)計(jì)模式如何分析
本文URL:http://chinadenli.net/article16/jsipdg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器全網(wǎng)營(yíng)銷(xiāo)推廣、品牌網(wǎng)站建設(shè)、電子商務(wù)、手機(jī)網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)
91欧美亚洲视频在线| 日本高清中文精品在线不卡| 男人操女人下面国产剧情| 国产一区二区不卡在线视频| 亚洲日本韩国一区二区三区| 日本人妻中出在线观看| 色婷婷在线精品国自产拍| 年轻女房东2中文字幕| 91免费一区二区三区| 成人你懂的在线免费视频| 国产又大又猛又粗又长又爽| 黄片在线观看一区二区三区| 亚洲综合香蕉在线视频| av中文字幕一区二区三区在线| 大香蕉精品视频一区二区| 中文字幕乱子论一区二区三区| 日本二区三区在线播放| 国产高清在线不卡一区| 黄色国产自拍在线观看| 国产精品亚洲一区二区| 大伊香蕉一区二区三区| 色婷婷视频免费在线观看| 国产一区二区三区免费福利| 国产欧美日韩视频91| 青青操视频在线播放免费| 蜜桃传媒视频麻豆第一区| 偷自拍亚洲欧美一区二页| 日韩人妻av中文字幕| 亚洲午夜福利视频在线| 香蕉尹人视频在线精品| 久久热在线免费视频精品| 亚洲熟女乱色一区二区三区| 亚洲性生活一区二区三区| 国产欧美一区二区久久| 亚洲国产成人精品一区刚刚| 精品人妻一区二区三区四在线| 国产成人免费激情视频| 99热九九热这里只有精品| 日本午夜免费观看视频| 日本99精品在线观看| 91亚洲人人在字幕国产|