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)

          相冊

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 星座| 志丹县| 贵南县| 鞍山市| 万山特区| 永泰县| 武穴市| 伽师县| 城步| 社会| 泰顺县| 兴隆县| 林口县| 依兰县| 孟连| 灵台县| 平利县| 祁阳县| 嫩江县| 旬邑县| 嘉善县| 霸州市| 鹤山市| 大连市| 维西| 永仁县| 伊川县| 特克斯县| 灵武市| 抚州市| 南宁市| 鹿泉市| 商城县| 阳山县| 日土县| 凤庆县| 措勤县| 哈密市| 湄潭县| 汨罗市| 桓台县|