<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設計應用 > 設計模式在業(yè)務邏輯層中的應用

          設計模式在業(yè)務邏輯層中的應用

          作者: 時間:2009-09-03 來源:網(wǎng)絡 收藏

          4 改進的4層架構開發(fā)模型
          基于上述分析,為提高軟件的開發(fā)效率,這里從角度出發(fā),提出把層進一步分出一層,單獨形成一個數(shù)據(jù)接口層。數(shù)據(jù)接口層屏蔽各種底層數(shù)據(jù)庫之間的差異,負責與底層數(shù)據(jù)庫之間的連接。形成4層軟件體系結構框架,從上到下依次是:表示層、層、數(shù)據(jù)接口層、數(shù)據(jù)層,如圖2所示。表示層是軟件進行人機交互的接口;層負責處理用戶的業(yè)務請求;數(shù)據(jù)接口層負責與底層數(shù)據(jù)庫之間的交互;數(shù)據(jù)層則負責存儲數(shù)據(jù)。
          4.1 DAO
          數(shù)據(jù)接口層采用數(shù)據(jù)訪問對象DAO(Data Access Ob-iect)模式。該模式實際是Adapter模式和Bridge模式的混合體,DAO對象提供數(shù)據(jù)庫訪問的基本操作,如增加、刪除、修改、查詢等。 DAO層以面向對象的方式封裝數(shù)據(jù)庫操作。DAO組件完全專注于數(shù)據(jù)訪問實現(xiàn),業(yè)務層代碼無須關心底層數(shù)據(jù)庫訪問的實現(xiàn),從而降低了層之間的耦合。
          DAO的優(yōu)點:
          (1)DAO模式抽象出數(shù)據(jù)訪問方式,業(yè)務邏輯層訪問數(shù)據(jù)源時完全感覺不到數(shù)據(jù)源的存在。軟件工廠中有一條很重要的法則:一個對象對其他對象的了解越少越好,了解越少就意味著依賴越少,可復用性越高。
          (2)DAO將數(shù)據(jù)訪問集中在獨立的一層,因為所有的數(shù)據(jù)訪問都由DAO代理,這層獨立的DAO將數(shù)據(jù)訪問的實現(xiàn)和系統(tǒng)的其余部分剝離,將數(shù)據(jù)訪問集中,使得系統(tǒng)更具可維護性。
          (3)DAO降低了業(yè)務邏輯層的復雜度。DAO管理復雜的數(shù)據(jù)訪問,從而簡化了業(yè)務邏輯層。所有與數(shù)據(jù)訪問的實現(xiàn)有關的代碼(例如SOL語言等)都不寫在業(yè)務邏輯層里,業(yè)務邏輯層可集中處理業(yè)務邏輯,提高了代碼的可讀性和生產率。
          (4)DAO有助于提升系統(tǒng)的可移植性。DAO模式通過將數(shù)據(jù)訪問劃分為抽象層和實現(xiàn)層,分離數(shù)據(jù)使用和數(shù)據(jù)訪問的實現(xiàn)細節(jié)。這意味著業(yè)務層與數(shù)據(jù)訪問的底層細節(jié)無關,也就是說,可以在保持上層機構不變的情況下,通過切換底層實現(xiàn)來修改數(shù)據(jù)訪問的具體機制,提高了系統(tǒng)的可復用性。
          (5)DAO組件依賴于數(shù)據(jù)庫系統(tǒng),提供數(shù)據(jù)庫訪問接口,只要數(shù)據(jù)庫沒有重構,DAO層通常無須改寫。DAO層透明地分離數(shù)據(jù)庫與業(yè)務邏輯層,業(yè)務邏輯層專注于業(yè)務邏輯的實現(xiàn),而無須關心持久層訪問的實現(xiàn)。
          (6)DAO模式的進一步改良。由于DAO層已實現(xiàn)所有的數(shù)據(jù)訪問,業(yè)務邏輯層只需調用DAO接口,因此業(yè)務邏輯層要使用Facade模式包裝DAO。為實現(xiàn)跨數(shù)據(jù)庫平臺移植,支持不同數(shù)據(jù)訪問機制之間的可配置切換,需在DAO層引入Factorv模式、Proxy模式和Strategy模式,則可方便地在不同數(shù)據(jù)存儲方式間切換。然而,采用DAO模式,系統(tǒng)在請求數(shù)據(jù)端和數(shù)據(jù)服務端之間增加一層,增加了系統(tǒng)的復雜度;新增加的一層需要額外的設計與實現(xiàn),增加了工作量;還需引入工廠甚至抽象工廠,增加了設計的復雜度??偟膩碚f,DAO將數(shù)據(jù)持久層與業(yè)務邏輯層分離,提高了軟件的可擴展性,可維護性和可復用性。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();