在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

DAO設計模式的優缺點及實現方法

電子設計 ? 作者:電子設計 ? 2018-11-21 07:57 ? 次閱讀

1 引言

目前,在Internet/Intranet環境中,企業級的應用軟件系統大多采用3層應用框架:表示層、業務邏輯層和數據層(圖1)。業務邏輯層代碼中混雜各種數據庫調用語句,嚴重影響系統的可擴展性、可復用性和可維護性。采用設計模式可有效解決這些難點,從而簡單方便地復用成功的設計和體系結構。通過采用設計模式,能大大提高系統的可擴展性、可重用性和可維護性,并能降低系統開發難度,提高開發效率。設計模式已成為當前乃至今后軟件工程研究領域的一大熱點,并被認為是繼OOP技術之后的又一重大突破。充分考慮系統的可擴展性,可復用性,可維護性,從軟件設計模式角度提出改進方法,并給出研究實例。

DAO設計模式的優缺點及實現方法

2 設計模式

每一個模式描述一個在不斷重復發生的問題,以及該問題解決方案的核心。這樣就能多次使用該方案而不必重復勞動。設計模式是面向對象軟件設計過程中記錄的知識和經驗,用一系列類結構和對象來具體描述其含義。設計模式通過復用面向對象設計的解決方案,從而更加簡單方便地復用成功的設計和體系結構,將已證實的技術表述成設計模式也會使新系統開發者更加容易理解其設計思路。設計模式可幫助設計者做出有利于系統復用選擇,避免損害系統復用性,通過提供一個顯式類和對象作用關系及它們之間潛在聯系說明規范,設計模式甚至能夠提高已有系統的文檔管理和系統維護的有效性。設計模式確定所包含的類和實例及其角色、協作方式、職責分配。通過刻畫部件靜態和動態結構及其之間的合作關系,設計模式成功應用于解決商業數據處理、電子通信、圖形用戶界面、數據庫、分布式通信軟件等軟件構造中。

3 改進的4層架構開發模型

基于上述分析,為提高軟件的開發效率,這里從設計模式角度出發,提出把業務邏輯層進一步分出一層,單獨形成一個數據接口層。數據接口層屏蔽各種底層數據庫之間的差異,負責與底層數據庫之間的連接。形成4層軟件體系結構框架,從上到下依次是:表示層、業務邏輯層、數據接口層、數據層,如圖2所示。表示層是應用軟件進行人機交互的接口;業務邏輯層負責處理用戶的業務請求;數據接口層負責與底層數據庫之間的交互;數據層則負責存儲數據。

3.1 DAO設計模式

業務對象只應該關注業務邏輯,不應該關心數據存取的細節。數據訪問對象必須實現特定的持久化策略(如,基于JDBC或HIBERNATEH的持久化邏輯), 這樣就抽出來了DAO層,作為數據源層,而之上的Domain Model層與之通訊而已,如果將那些實現了數據訪問操作的所有細節都放入高層Domain model(領域模型)的話,系統的結構一定層次上來說就變得有些混亂。低級別的數據訪問邏輯與高級別的業務邏輯分離,用一個DAO接口隱藏持久化操作的 細節,這樣使用的最終目的就是讓業務對象無需知道底層的持久化技術知識,這是標準 j2ee 設計模式之一。一個典型的的DAO組成:DAO工廠類,DAO接口,實現DAO接口的具體類(每個DAO實例負責一個主要域對象或實體),VO(Value Object)。如果一個DAO工廠只為一個數據庫的實現(現在只考慮這種情況)而創建很多的DAO的時候,實現該策略時,我們考慮采用工廠方法設計模式。

DAO設計模式的優點:

(1)DAO模式抽象出數據訪問方式,業務邏輯層訪問數據源時完全感覺不到數據源的存在。軟件工廠中有一條很重要的法則:一個對象對其他對象的了解越少越好,了解越少就意味著依賴越少,可復用性越高。

(2)DAO將數據訪問集中在獨立的一層,因為所有的數據訪問都由DAO代理,這層獨立的DAO將數據訪問的實現和系統的其余部分剝離,將數據訪問集中,使得系統更具可維護性。

(3)DAO降低了業務邏輯層的復雜度。DAO管理復雜的數據訪問,從而簡化了業務邏輯層。所有與數據訪問的實現有關的代碼都不寫在業務邏輯層里,業務邏輯層可集中處理業務邏輯,提高了代碼的可讀性和生產率。

(4)DAO有助于提升系統的可移植性。DAO模式通過將數據訪問劃分為抽象層和實現層,分離數據使用和數據訪問的實現細節。這意味著業務層與數據訪問的底層細節無關,也就是說,可以在保持上層機構不變的情況下,通過切換底層實現來修改數據訪問的具體機制,提高了系統的可復用性。

(5)DAO組件依賴于數據庫系統,提供數據庫訪問接口,只要數據庫沒有重構,DAO層通常無須改寫。DAO層透明地分離數據庫與業務邏輯層,業務邏輯層專注于業務邏輯的實現,而無須關心持久層訪問的實現。

(6)DAO模式的進一步改良。由于DAO層已實現所有的數據訪問,業務邏輯層只需調用DAO接口,因此業務邏輯層要使用Facade模式包裝DAO。為實現跨數據庫平臺移植,支持不同數據訪問機制之間的可配置切換,需在DAO層引入Factorv模式、Proxy模式和Strategy模式,則可方便地在不同數據存儲方式間切換。然而,采用DAO模式,系統在請求數據端和數據服務端之間增加一層,增加了系統的復雜度;新增加的一層需要額外的設計與實現,增加了工作量;還需引入工廠甚至抽象工廠,增加了設計的復雜度。總的來說,DAO將數據持久層與業務邏輯層分離,提高了軟件的可擴展性,可維護性和可復用性。

3.2 DAO實現

DAO對象也是。Java對象,只是它們提供數據庫訪問的能力。數據庫的訪問可歸納為創建(Create)、查詢(Read)、更新(Update)、刪除(Delete)4種基本操作,即常說的CRUD操作。DAO模式通常與工廠模式一起使用,建議面向接口編程,為每個DAO實現類編寫接口,DAO調用者使用接口,而不是具體的實現類。當然,DAO對象需要值對象來傳值,值對象就是普通的JavaBean。以下是一個DAO的示例。圖3為數據訪問對象設計模式的參與對象和它們之間的調用關系。圖4為該示例的詳細類圖。

DAO設計模式的優缺點及實現方法

該DAO示例包含文件:DAO接口類、DAO接口實現類、DaoFactory類、PersonBean類、DBConn類、Test類。接口里定義 DAO對象必須提供方法,PersonBean是一個普通的JavaBean,DAO對象的實現類為接口的全部方法提供實現。程序中還用到工具類 DBConn,該工具類主要用于獲得數據庫連接,通過連接獲得Statement對象,并提供釋放Statement對象、關閉連接的方法。

程序將DBConn對象設計成單態模式。至此,完整的DAO實例編寫完成。程序主要提供3個組件:傳值的JavaBean類,DAO對象的接口,DAO對象的實現類,實現類包括所用的工具類。DAO模式通常與工廠模式相結合,DAO工廠負責產生DAO實例。兩者結合可更好地實現業務組件與持久層組件的解耦。業務組件只需獲取DAO工廠實例,然后由DAO工廠實例負責產生DAO組件。業務組件則面向DAO接口編程,無須關心DAO的具體實現。

4 結束語

本文通過分析傳統3層軟件體系結構的優缺點,從軟件模式角度出發,對其進行改進,提出4層開發模型,提高了系統的可擴展性、可復用性、可維護性,并給出一個具體應用實例實現DAO設計模式。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 軟件
    +關注

    關注

    69

    文章

    5029

    瀏覽量

    88145
  • Internet
    +關注

    關注

    0

    文章

    400

    瀏覽量

    36916
收藏 人收藏

    評論

    相關推薦

    滾動模式和XY模式如何使用呢?各個模式有什么樣的優缺點

    示波器觀察波形有三種視圖模式,分別是YT模式、滾動模式、XY模式,雖然多數情況使用YT模式即可,但滾動
    的頭像 發表于 10-16 09:12 ?1.4w次閱讀

    LED電源恒流驅動與恒壓驅動模式優缺點

    ,各自也有相應的優勢和缺陷。本文今天將會就這兩種LED電源的驅動模式來為各位工程師們進行一次優缺點盤點。 首先來看LED電源的恒壓驅動模式,這種驅動方式能夠在負載端對輸出電壓進行采樣,線性穩壓電源反饋回路
    發表于 10-09 14:18

    SASS和LESS等優缺點對比及使用方法

    SASS和LESS等優缺點對比,使用方法總結 (筆記大全)
    發表于 05-21 14:09

    binlog有什么意義/工作模式/優缺點

      Linux運維是現下較為火熱的職業崗位之一。學習Linux技術的人越來越多。Linux運維學習過程中,binlog有什么意義?binlog有哪些工作模式?都有哪些優缺點?binlog有哪些企業
    發表于 01-29 17:24

    DSP的并行互連方法有哪些,其各自的優缺點是什么?

    DSP的并行互連方法有哪些,其各自的優缺點是什么?如何利用TMS320C6x的HPI組成多DSP互聯并行系統?如何利用ADSP2106x的Link口組成多DSP互連并行系統?
    發表于 04-08 06:41

    開關模式電源的電流檢測方法優缺點有哪些

    開關模式電源的電流檢測技術有何優點?開關模式電源的電流檢測方法有哪幾種?分別有什么優缺點
    發表于 08-17 09:09

    步進電機有哪些優缺點?是什么工作原理?操作模式有哪些?

    步進電機的特點是什么?有哪些優缺點?步進電機有哪些類型?步進電機是什么工作原理?步進電機的操作模式有哪幾種?
    發表于 09-23 08:33

    什么是OFDM?有什么優缺點

    什么是OFDM?有什么優缺點?OFDM中降低PAPR的方法有哪些?
    發表于 10-09 07:41

    受限單極PWM模式有哪些優缺點

    雙極PWM調制模式是什么意思?單極PWM調制模式是什么意思?受限單極PWM模式有哪些優缺點
    發表于 10-11 07:03

    什么是IoC?具有哪些優缺點

    什么是IoC?具有哪些優缺點
    發表于 10-21 09:33

    LwIP的優缺點是什么

    目錄2.1 LwIP 的優缺點2.2 LwIP 的文件說明2.2.1 如何獲取 LwIP 源碼文件2.2.2 LwIP 文件說明2.3 使用 vscode 查看源碼2.3.1 查看文件中的符號列表
    發表于 01-20 06:25

    矩陣按鍵的掃描方法有何優缺點

    矩陣按鍵需要用多少個單片機引腳進行連接呢?矩陣按鍵的掃描方法有何優缺點呢?具體怎樣去實現
    發表于 02-23 06:11

    電流模式開關穩壓器的優缺點及應用

    優缺點。電流模式穩壓器解析圖1顯示電流模式穩壓器的基本工作原理。這里,不止將反饋電壓與內部基準電壓進行比較,還將其與生成電源開關所需的PWM信號所用的鋸齒形電壓斜坡進行比較。在電壓模式
    發表于 10-09 10:18

    超級電容電池的優缺點_自制超級電容電池的方法

    本文主要介紹了超級電容電池的優缺點及制作方法
    發表于 08-03 10:16 ?2.4w次閱讀
    超級電容電池的<b class='flag-5'>優缺點</b>_自制超級電容電池的<b class='flag-5'>方法</b>

    反激變換器DCM與CCM模式優缺點

    反激變換器DCM與CCM模式優缺點(羅馬仕電源技術偏執狂價格)-反激變換器DCM與CCM模式優缺點 ? ? ? ? ? ??
    發表于 08-31 15:18 ?78次下載
    反激變換器DCM與CCM<b class='flag-5'>模式</b>的<b class='flag-5'>優缺點</b>
    主站蜘蛛池模板: 免费看污视频的网站 | 无遮挡很爽很污很黄在线网站 | 国产黄色在线网站 | 天堂网最新版中文 | 色综合中文网 | 在线亚洲欧美性天天影院 | 婷婷亚洲五月琪琪综合 | 三级理论手机在线观看视频 | 亚洲高清不卡视频 | 日本免费人成黄页网观看视频 | 婷婷六 | 一级一级毛片免费播放 | 1024视频色版在线网站 | 国产女同在线观看 | 日日拍拍 | 三浦理惠子中文在 | 国产黄在线观看免费观看不卡 | 成人免费视频一区二区三区 | 精品影视网站入口 | 欧美成人免费大片888 | 最新欧美一级视频 | 亚洲三级在线 | 日本免费黄色网 | 在线观看www日本免费网站 | 国产黄色在线免费观看 | 国产黄在线观看免费观看不卡 | 天天摸夜夜操 | 天天拍拍天天爽免费视频 | 久久精品免费在线观看 | 色日本视频 | 大美女久久久久久j久久 | 538porm在线看国产亚洲 | 人人看人人添人人爽 | 波多野结衣一级毛片 | 中文字幕国产一区 | 天堂最新版中文网 | ww在线观看 | yy4080午夜理论一级毛片 | 久久综合香蕉久久久久久久 | 天天碰视频 | 好色999|