J2EE之巔

           

          Spring構建應用系統的最佳架構與模式實踐(2)

          蔡 超
          SCEA,SCBCD,MCSD,IBM RUP Specilist
          北京天融信軟件架構師
          SUN,Microsoft培訓中心特邀高端教師
          常年提供架構咨詢服務
          chaocai2001@yahoo.com.cn ,010-82776427

          問題:
          在spring+hibernate的常見架構中,常會應為hibernate的延遲加載遇到一些麻煩。如Hibernate的引入使用脫管領域對象直接取代了DTO,然而前臺組織顯示時常會應為脫管領域對象的一些關系域未被加載而拋出異常(其實延遲加載是優化系統性能的一種有效方式)。
          為了使顯示層正常工作,我們就必須在業務層顯式的加載這些表現層會用到的延遲加載的關系域對象。而這樣的工作不僅需要額外的代碼,并且這些代碼往往也與所進行的業務邏輯無關。并且表現層的變化較多這樣一來如果上述代碼進入業務層就會導致業務層跟隨表現層的變化。
          解決方案:
          在“Spring構建應用系統的最佳架構與模式實踐(1)”中將邏輯層分為了Façade和ApplicationService兩層。
          Façade的方法組織是針對客戶端請求的,所以如果我們把業務邏輯封裝在ApplicationService對象中,而把脫管對象產生(包括根據表現層初始化延遲加載對象,關閉Session)。這樣便可以有效的防止表現層邏輯混入業務邏輯中。

          posted on 2007-06-08 10:48 超越巔峰 閱讀(1010) 評論(0)  編輯  收藏 所屬分類: Design Pattern

          導航

          統計

          常用鏈接

          留言簿(12)

          隨筆分類(54)

          隨筆檔案(59)

          文章分類(2)

          文章檔案(1)

          相冊

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 台安县| 蓬安县| 青神县| 合阳县| 房产| 施甸县| 庆元县| 吉林省| 南充市| 英吉沙县| 汉沽区| 吉安县| 浪卡子县| 屏南县| 会同县| 丽江市| 河津市| 巴林左旗| 获嘉县| 宁乡县| 南充市| 古丈县| 宜都市| 莆田市| 洛阳市| 宿松县| 黔西| 温宿县| 西和县| 崇左市| 双鸭山市| 通渭县| 宁波市| 玉溪市| 阳曲县| 凭祥市| 温泉县| 泰顺县| 汝州市| 从江县| 新竹市|