兩種設計模式在EJB開發(fā)中的應用

字號:

摘要:本文介紹了J2EE的分層結構,深入研究了如何使用Session Facade模式和ValueObject 模式設計EJB,并對其開發(fā)過程做了較詳細的說明。
    關鍵字:EJB ;值對象模式;會話外觀模式
    一、概述
    與傳統(tǒng)的二層體系結構相比,J2EE有兩個特點:
    1、定義了一套標準化組件,通過為這些組件提供完整的服務。
    2、使用多層分布式的應用程序模型。應用程序的邏輯根據其實現的不同功能被封裝到不同的組件中。如圖1所示。
    這種多層結構使企業(yè)級應用具有很強的伸縮性,允許各層專注于某種特定的角色:
    1、Client Tier用于顯示。
    2、Web Tier用于生成動態(tài)顯示。
    3、Business Tier用于實現業(yè)務邏輯。
    4、EIS Tier用于數據庫服務。
    其中,用于實現業(yè)務邏輯的EJB組件架構是J2EE的基礎和最重要的部分。
    正是認識到J2EE平臺作為一種可擴展的、全功能的平臺,可以將關鍵的企業(yè)應用擴展到任何Web瀏覽器上并可適合多種不同的Internet數據流、可連接到幾乎任何一種傳統(tǒng)數據庫和解決方案,J2EE已經成為開發(fā)電子商務應用的事實標準。
    為了使開發(fā)者開發(fā)出規(guī)范的、可重用的應用程序,J2EE為我們提供了大量的模式。模式盡管有時不易理解,但使用卻非常簡單,它提供了強大的可重用機制,避免了開發(fā)者和設計者的重復投資。
    可是,面對如此多的模式,初學者往往不知如何下手,為此,作者結合以往的開發(fā)經驗,詳細介紹如何使用模式完成EJB的設計。
    二、設計與實現
    1.值對象模式
    J2EE應用程序把服務器端業(yè)務組件實現為會話Bean和實體Bean。對于實體Bean的創(chuàng)建,開發(fā)人員通常采用CMP(容器管理持久性)模式,其好處在于容器提供公共的服務,例如目錄服務、事務管理、安全性、持久性、資源緩沖池以及容錯性等,使開發(fā)人員不必維護將會集成到業(yè)務邏輯中的系統(tǒng)級代碼,只需專注于商業(yè)邏輯。
    一般來說,有了實體bean,就可以通過調用業(yè)務組件的一些方法向客戶端返回數據。初學者往往會認為既然客戶端可以與服務器通信,那么任務就算完成了??墒?,問題恰恰出在這里。業(yè)務組件的get方法只能返回一個屬性值,這就導致需要獲得所有屬性值的客戶端需要多次調用業(yè)務對象的get方法,如圖2-1所示。每次調用都是一次網絡調用,都會造成系統(tǒng)性能的退化,當調用次數增多時,系統(tǒng)性能就會嚴重下降。