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 超越巔峰 閱讀(1014) 評論(0)  編輯  收藏 所屬分類: Design Pattern

          導航

          統計

          常用鏈接

          留言簿(12)

          隨筆分類(54)

          隨筆檔案(59)

          文章分類(2)

          文章檔案(1)

          相冊

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 沧州市| 桐城市| 水城县| 荣昌县| 治多县| 凤庆县| 德江县| 大荔县| 汤阴县| 皮山县| 古蔺县| 遂昌县| 固原市| 墨脱县| 瑞安市| 红河县| 九台市| 珠海市| 耿马| 黄骅市| 肥东县| 云南省| 普安县| 宜宾市| 白城市| 金湖县| 瑞昌市| 蒙阴县| 南丰县| 丹阳市| 本溪| 田林县| 合水县| 惠来县| 会泽县| 临泽县| 乐平市| 青龙| 桂平市| 安宁市| 拜泉县|