新聞中心

        EEPW首頁 > 設計應用 > 設計模式在業務邏輯層中的應用

        設計模式在業務邏輯層中的應用

        作者: 時間:2009-09-06 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/261221.htm

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

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

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

        4.2 DAO實現

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


        該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的具體實現。

        5 結束語

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


        上一頁 1 2 下一頁

        關鍵詞: 設計模式 DAO 數據庫

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 大化| 泸州市| 齐齐哈尔市| 巴林右旗| 昭觉县| 高阳县| 稷山县| 邯郸市| 晋州市| 佛坪县| 白玉县| 陆河县| 崇仁县| 安图县| 尼勒克县| 禄劝| 咸阳市| 鱼台县| 文水县| 台中县| 新建县| 高雄市| 固镇县| 邮箱| 泗阳县| 旬邑县| 晋中市| 汝南县| 玛纳斯县| 垫江县| 泸州市| 米林县| 乐都县| 江源县| 大洼县| 彩票| 阿合奇县| 祁连县| 嘉善县| 阿瓦提县| 惠水县|