何濤軟件開發(fā)模式_第1頁
何濤軟件開發(fā)模式_第2頁
何濤軟件開發(fā)模式_第3頁
何濤軟件開發(fā)模式_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、J2EE軟件開發(fā)模式探討摘要:J2EE 即 Java2 平臺的企業(yè)版(J2EE, Java 2 Enterprise Edition), J2EE 是 一套全然不同于傳統(tǒng)應(yīng)用開發(fā)的技術(shù)架構(gòu),包含許多組件,主要可簡化且規(guī)范應(yīng)用 系統(tǒng)的開發(fā)與部署,進而提高可移植性、安全與再用價值J2EE平臺使用多層分布 式應(yīng)用程序模型,力求根據(jù)功能的不同把應(yīng)用程序邏輯劃分成各個組件.常用的方 式是用JSP / Servlet+JavaBeans的方式來處理表示層和業(yè)務(wù)層邏輯,但是,這種方 式往往存在著層與層之間邏輯不清楚、表示同應(yīng)用邏輯混合的缺點,使得開發(fā)過程 中分工不明確,也不利于系統(tǒng)今后的維護,以及擴充。MV

2、C結(jié)構(gòu)是一種用來分離出 數(shù)據(jù)維護和數(shù)據(jù)表現(xiàn)的方式,在J2EE中引入MVC框架,有助于把應(yīng)用分成合理的組 件,以方便開發(fā)、維護、擴充。該文介紹了模型一視圖一控制器(MVC)模式在l2EE 體系結(jié)構(gòu)中的應(yīng)用,使得J2EE應(yīng)用的業(yè)務(wù)層與表現(xiàn)層相互獨立,系統(tǒng)結(jié)構(gòu)清晰,便 于開發(fā)與維護。關(guān)鍵詞:J2EE;模式;MVC; JSP1 J2EE體系結(jié)構(gòu)1 J2EE 平臺J2EE(Java 2 P1atform Enterprise Editi0n)是開發(fā)分布式企業(yè)軟件應(yīng)用的平 臺。它為分布式和服務(wù)器為主的應(yīng)用提供了統(tǒng)一的平臺.并且通過廣泛采用各種策 略,提供開放和標(biāo)準(zhǔn)的開發(fā)環(huán)境,J2EE使企業(yè)以服務(wù)為基礎(chǔ)的應(yīng)

3、用系統(tǒng)得以建立, J2EE平臺為企業(yè)應(yīng)用提供了很多好處,比如它在各種領(lǐng)域內(nèi)創(chuàng)建了適用于企業(yè)計算 的一系列標(biāo)準(zhǔn),它提高了編程效率,縮短了產(chǎn)品投入市場的時間.提高了現(xiàn)有不同 種類開發(fā)環(huán)境的協(xié)同工作能力等。2 J2EE多層結(jié)構(gòu)J2EE使用多層的分布式應(yīng)用模型,應(yīng)用邏輯按功能劃分為組件,各個應(yīng)用組件 根據(jù)他們所在的層分布在不同的機器上。一個多層化應(yīng)用能夠為不同的每種服務(wù)提 供一個獨立的層,以下是J2EE典型的四層結(jié)構(gòu):1. 2. 2運行在客戶端機器上的客戶層組件J2EE應(yīng)用程序是由組件和文件組裝成J2EE應(yīng)用程序構(gòu)成的.J2EE組件是具有獨 立功,并與其他組件交互。J2EE說明能的軟件單元,它們通過相

4、關(guān)的類書中定義了 以下的J2EE組件:應(yīng)用客戶端程序和applets是客戶層組件.Java Servlet和 JavaServer Pages(JSP)是 web 層組件.EnterpriseJavaBeans(EJB)是業(yè)務(wù)層組件. 1. 2. 3運行在J2EE服務(wù)器上的Web層組件J2EE應(yīng)用程序可以是基于web方式的,也可以是基于傳統(tǒng)方式的.web層組件J2EE web層組件可以是JS和Applets不算是web層組件。正如客戶層戶輸入,并把輸 入發(fā)送給運行在業(yè)務(wù)層上P頁面或Servlets.按照J(rèn)2EE規(guī)范,靜態(tài)的HTML頁面那 樣,web層可能包含某些JavaBean對象來處理用的e

5、nterprise bean來進行處理。1. 2. 4運行在J2EE服務(wù)器上的業(yè)務(wù)邏輯層組件業(yè)務(wù)層代碼的邏輯用來滿足銀行,零的enterprise bean進行處理.下圖表明 據(jù),進行處理(如果必要的話),并發(fā)送到業(yè)級的bean:會話(session) beans,實 sage-driven) beans.會話bean表示與話bean和相關(guān)數(shù)據(jù)就會消失.相反,實 程序中止或服務(wù)器關(guān)閉時,就會有潛在的結(jié)合了會話bean和JMS的消息監(jiān)聽器的 售,金融等特殊商務(wù)領(lǐng)域的需要,由運行在業(yè)務(wù)層上了一個enterprise bean是如何 從客戶端程序接收數(shù)EIS層儲存的,這個過程也可以逆向進行。有三種企

6、體(entity) beans,和消息驅(qū)動(mes客戶端程序的臨時交互.當(dāng)客戶端程序執(zhí)行完后,會體 bean表示數(shù)據(jù)庫的表中一行永久的記錄.當(dāng)客戶端服務(wù)保證實體bean的數(shù)據(jù)得以 保存.消息驅(qū)動bean特性,允許一個業(yè)務(wù)層組件異步接收J(rèn)MS消息.1.2.5運行在EIS服務(wù)器上的企業(yè)信息系統(tǒng)(Enterprise information system)層軟件企業(yè)信息系統(tǒng)層處理企,大型機事務(wù)處理,數(shù)據(jù)庫據(jù)庫連接需要訪問企業(yè)信 息業(yè)信息系統(tǒng)軟件包括企業(yè)基礎(chǔ)建系統(tǒng),和其它的遺留信息系統(tǒng)系統(tǒng)。2 模式1模式的概念模式用來描述所交流的問題及其解決方案。簡單的說,模式可以幫助我們在一 個特定的環(huán)境里整理并記

7、錄已知的可重現(xiàn)的問題及其解決方案.并且通過模式來與 他人交流這些知識,可以簡單的認(rèn)為:模式就是解決某個特定問題的特定方法。簡單來說,模式就是一個常用的方案。在我們的開發(fā)過程中,經(jīng)常會遇到一些 相同或者相近的問題,每次我們都會去尋找一個新的解決方法,為了節(jié)省時間提高 效率,我們提供一些能夠解決這些常見問題的,被證實可行的方案,構(gòu)成一個統(tǒng)一 的資源庫。一個模式描述了一個被證實可行的方案。這些方案非常普通,是有完整 定義的最常用的模式。這些模式可以被重用,有良好的伸縮性,而這些模式的優(yōu)勢 將在設(shè)計J2EE應(yīng)用時得到體現(xiàn)。2MVC模式2. 2. 1 MVC的概念及特點MVC(Model_View_Co

8、ntroller)模型一視圖一控制器,是Xerox PARC在八十年代 為編程語言Smalhalk一80發(fā)明的一種軟件設(shè)計模式,至今已被廣泛使用。最近幾年 被推薦為Sun公司J2EE平臺的設(shè)計模式。MVC模式可以被映射到多層企業(yè)級的J2EE應(yīng) 用上MVC設(shè)計模式,它可以分離數(shù)據(jù)訪問和數(shù)據(jù)表現(xiàn),強制性的使應(yīng)用程序的輸入、 處理和輸出分開。2. 2.2 MVC的三個核心部件使用MVC應(yīng)用程序被分成三個核心部件:模型、視圖、控制器(圖2)。它們各自 處理自己的任務(wù),定義如下:Model:包含完成任務(wù)所需要的所有行為、數(shù)據(jù)以及對象的狀態(tài)等。它提供應(yīng)用業(yè)務(wù) 邏輯類,管理應(yīng)用領(lǐng)域的資料、執(zhí)行資料的處理或轉(zhuǎn)

9、換、回應(yīng)請求資料的要求(通常 來自View)以及回應(yīng)變更資料的要求(通常來自Controller)。Model對View與 Controller 一無所知,它們透過特定的界面與彼此溝通。View:負(fù)責(zé)顯示Model中的資料,也就是將資料做視覺化的呈現(xiàn)。View對象可以是一 組可視化的元素,如對話框、菜單、工具條等。對老式啊eb應(yīng)用程序來說,視圖就 是由HTML元素組成的界面,在新式的Web應(yīng)用程序中,HTML依舊在視圖中扮演著重要 的角色,但一些新的技術(shù)已層出不窮,它們包括Macromedia Flash和象XHTML, XMUXSL,WML等一些標(biāo)識語言和Web services同樣的。Vi

10、ew通過特定的界面與Model 溝通。Controller:當(dāng)單擊Web頁面中的超鏈接和發(fā)送HTML表單時,控制器本身不輸出任何 東西和做任何處理。它只是接收請求并決定調(diào)用哪個模型構(gòu)件去處理請求,然后用 確定用哪個視圖來顯示模型處理返回的數(shù)據(jù)。它負(fù)責(zé)Model與View之間的協(xié)調(diào)工作。 Controller也通過特定的界面與Model溝通。簡單的說,整個的處理過程可以總結(jié)為:首先控制器接收用戶的請求,并決定 應(yīng)該調(diào)用哪個模型來進行處理,然后模型用業(yè)務(wù)邏輯來處理用戶的請求并返回數(shù) 據(jù),最后控制器用相應(yīng)的視圖格式化模型返回的數(shù)據(jù),并通過表示層呈現(xiàn)給用戶。 MVC所解決的問題是:MVC將用戶接口與面

11、向?qū)ο蟮哪P头珠_。這允許同樣的模型不 用修改就可使用許多不同的界面顯示方式。除此之外,如果模型更新由控制器完成, 那么界面就可以跨應(yīng)用再使用。將其應(yīng)用到更一般的場合中,就是MVC將對象分離, 使得一個對象的改變能夠影響另一些對象,而這個對象并不需要知道那些被影響對 象的細節(jié)。3用MVC框架構(gòu)建J 2EE應(yīng)用1使用MVC構(gòu)建J2EE的好處J2EE使用多層分布式應(yīng)用程序模型,但這種方式存在的缺點是:層與層之間邏 輯不清楚、表示同應(yīng)用邏輯混合,使得程序員既要開發(fā)應(yīng)用邏輯部分,又要懂得用 戶界面(uI)設(shè)計。不利于應(yīng)用的開發(fā)維護,以及應(yīng)用的擴充。為了解決這個問題, 我們采用將MVC應(yīng)用于J2EE來實現(xiàn)

12、其表示層和業(yè)務(wù)邏輯層。MVC結(jié)構(gòu)是一種用來分離 出數(shù)據(jù)維護和數(shù)據(jù)表現(xiàn)的方式,在J2EE中引入MVC框架,會使程序結(jié)構(gòu)更加清晰,有 助于增強代碼穩(wěn)定性和把應(yīng)用分成合理的組件,以方便三個部分并行開發(fā)、維護和 擴充,加快項目開發(fā)進度。選擇MVC的另一個好處在于多個視圖能共享一個模型。由于MVC可以將數(shù)據(jù)和業(yè) 務(wù)規(guī)則從表示層分開,所以可以最大化的重用代碼。由于模型返回的數(shù)據(jù)沒有進行 格式化,所以同樣的構(gòu)件能被不同界面使用。而且,因為模型是自包含的,并且與 控制器和視圖相分離,所以很容易改變你的應(yīng)用程序的數(shù)據(jù)層和業(yè)務(wù)規(guī)則??刂破?的也提供了一個好處,就是可以使用控制器來聯(lián)接不同的模型和視圖去完成用戶的

13、需求,這樣控制器可以為構(gòu)造應(yīng)用程序提供強有力的手段。給定一些可重用的模型 和視圖,控制器可以根據(jù)用戶的需求選擇模型進行處理,然后選擇視圖將處理結(jié)果 顯示給用戶MVC結(jié)構(gòu)實現(xiàn)了數(shù)據(jù)維護與數(shù)據(jù)表現(xiàn)的分離,它可以直接映射到多層Web 企業(yè)應(yīng)用的領(lǐng)域中。在J2EE應(yīng)用中,多個JSP中重復(fù)的控制代碼也需要在每個JSP中 維護,可以用前端控制器模式來應(yīng)用抽取類以創(chuàng)建一個控制器類,把重復(fù)的控制邏 輯從單個JSP中移到該控制器中。2 MVC框架構(gòu)建J2EE應(yīng)用的實現(xiàn)方法簡單的說,我們可以用Servlet來作前端控制器,JavaBeans / EJB作模型,JSP 作視圖。Web應(yīng)用客戶端的用戶動作被View傳遞給Servlet集中處理,Servlet處理控 制邏輯,調(diào)用Beans激活業(yè)務(wù)過程或修改Model狀態(tài)。根據(jù)用戶動作和Model(Beans) 處理的結(jié)果,Servlet(Controller)選擇一個View(JSP)作為用戶請求響應(yīng)。4結(jié)束語通過探討MVC結(jié)構(gòu)構(gòu)建J2EE的過程,希望大家對將MVC應(yīng)用于 J2EE有了一定的認(rèn) 識:在J2EE應(yīng)用中利用MVC設(shè)計模式會帶來更好的軟件結(jié)構(gòu)和代碼重用性,清晰的分 解了表示和交易層,給用戶一種改變應(yīng)用的外觀而不必重新編譯的能力,而

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論