DAO再學習

關於DAO模式一直在學習,但是理解總是不夠,或者可以說明我使用複製粘貼的時代已經過去,可以寫使用自己的語言下自己的一些收穫了。寫得不好的話,請多多指教哦!!

 

開場

DAO :Data Access Objects)數據訪問模式

 

先理解核心層:我們知道的插、刪除和查詢,都在DAO接口裏得到了定義,再用一個實現這個接口的類去實現這個接口的方法,從而達到我們操作數據的目標。

                              一個類就可以實現的操作卻這樣拐彎的實現。這樣子的好處是什麼呢?列舉兩個例子:添加一個接口好處如下。。。。。。

(1)兩個人開發兩個模塊,一個是完成對數據庫的基本操作,一個是在調用前一個人的操作實現業務,第二個人只需要提供給前一個人一個接口,具體的前一個人實現就好了,兩個人互相不用管對方的代碼。

(2)如果本來這個項目用的是Oracle,現在要用sql server,只需要重寫一個符合接口的實現類就可以,主程序不用動。
 

小結:經過接口定義再實現,學習到了使用這接口再實現可以降低耦合和共同開發的這兩個好處。但是到這裏或者剛學完基礎的還是不明白,接口直接通過其子類實例化,影響就是程序在調用時必須知道具體的子類,這樣卻會造成修改不方便。如果更換成oracle數據庫了,就必須修改所有DAO的實現類代碼(這裏不是很明白),但是使用DAO工廠卻可以解決這個問題通過該DAO工廠的一個靜態方法獲得實現類的一個實例。如果要修改DAO的實現類,只需要修改DAO工廠的方法代碼,而不需要修改所有操作數據庫的代碼。

 

繼續深入:數據庫連接類,此類只負責連接數據庫,簡單邏輯就可以省去以後每次增刪查的重複連接數據操作。

 

到這裏我們已經說四個內容了,DAO接口、實現DAO接口、工廠、連接數據庫,接口然後實現完成了數據庫操作,但是調用我們所用的是工廠區獲得接口的子類的實例,接口+實現+工廠徹底完成了數據庫才操作,這樣我們就知道怎麼去調用怎麼寫操作了

 

剩下的最後一個是VO了,VO=value Object,view Object,那有什麼用處呢?,實例化一個vo類,就可以用set和get的方法定義或者取值,然後在調用方法的使用傳入這個實例。這樣的話是不是比簡單的定義幾個變量好多了?也符合業務的邏輯和我們的生活常識,代碼更規範了

 

這種模式的分離了數據使用和數據訪問的底層細節,我們可以保持上層不變的情況下,通過切換底層實現來修改數據訪問具體機制,常見的一個例子就是,我們僅僅通過替換數據訪問層的實現可以將我們系統部署在不同的數據庫平臺上。

 

暫時學習到這裏,後面再補充了。。。。。。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章