<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    冰浪

    哥已不再年輕 - 堅定夢想,畢生追求!
    posts - 85, comments - 90, trackbacks - 0, articles - 3
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    ???? DAO Date Access Object 的縮寫,就是數據訪問對象。 DAO 模式就是將對數據庫的操作都封裝成一個類,在需要進行數據存取時就直接調用 Dao 類實例對象來完成的一種工作方式,這也是面向對象編程的一種體現。

    CSUOA 中,我將數據庫里每一個表都對應一個實體 Entity ,而每一個 Entity 都對應著一個 Dao 的實例類,用于進行相應的操作。

    CSUOA 數據庫里有 oauser mail message 等表,分別代表用戶表,郵件表,短信息表。那么我就對應著有 OauserDao.class MailDao.class MessageDao.class Dao 實例類。而我們知道,數據庫操作中最基本的就是增刪改,這也是共性,所以我將增刪改操作抽象出來,建立一個 Dao 抽象類 BaseDao.class ,作為 Dao 實例類的父類,其類方法可為增刪改的抽象方法或實例方法,具體要根據數據持久操作的底層實現來確定。當然,進一步來說,獲取對象也是基本的操作,在這里省略了。

    那么,到這里就完成了嗎?沒有!按照面向接口編程的原則,我再建立一個 Dao 接口: Dao.class 作為抽象類 BaseDao.class 的父類。而在 Dao.class 里,我們只聲明了增刪改的無任何實現的抽象方法。

    接口不能實例化,定義了接口又怎么用呢?對,接口是不能實例化,但我們可以聲明一個接口類型的引用。也就是創建一個 Dao 實例對象,但聲明其類型為 Dao 接口類型。例如: Dao dao = new OauserDao(); 這樣有何意義呢?是因為對松耦合的要求,這點我們在下篇再詳細說明。

    除了要進行基本的增刪改操作外,有些 Entity 還要進行其它一些操作,如查詢。我首先想到的是,在 OauserDao.class 里擴展功能,加入查詢方法,以致于可以進行查詢操作。即在 Dao dao = new OauserDao(); 后用 dao.query(“queryStr”); 進行查詢操作,但此時,編譯器報錯了,說“沒有為 Dao 定義 query() 方法”。想想也對,將 dao 聲明為 Dao 類型,編譯器就以 Dao 類型所擁有的方法進行編譯,但此時編譯器無法在 Dao 接口類里找到此方法,所以報錯了。

    幾經思考后,想到可以這么做:新建立一個 Query.class 的接口類,并聲明查詢方法,然后在 Dao 實例類如 OauserDao.class 里實現 Query 接口。我們知道,一個類可以實現多個接口,這就是接口的優勢。在要進行查詢操作時,我們將之前 dao 實例對象聲明為 Query 類型,此時就通過了編譯并實現了我所要的結果。

    ?

    我以前寫程序,根本就不會去用接口,也不明白接口有什么用,也不會去用抽象類,動手就是實例類,最多也就是用到繼承,以為這就是面向對象了。從這可以看我的面向對象基礎不太好,我覺得很大程度是因為我們大學里所用教材的原因,教材里所寫的就只是一些語法。而自己又是大三下學期才決定轉入 Java 方向的,所以深深知道自己要學習的東西太多太多。在大四時我就決定好好補上這一課,而當我在網上看到孫衛琴的《 Java 面向對象編程》這本書并預讀了其中一章內容時,我馬上做出了買書的決定!因為這本書剛出版的原因,我沒有在惠州買到,所以就托我哥在順德買了下來,拿到手后如獲至寶。現在,我已經基本上看完了這本書,明白了很多東西,覺得自己的面向對象思想已經達到了一個質的飛躍。在此我要特別感謝孫衛琴老師,給我們寫了一本這么好的書。也是因為這些,我才可以寫下這篇開發日記,算是有點東西的東西。


    評論

    # re: 畢業設計開發日記連載4:DAO模式和面向接口編程  回復  更多評論   

    2007-02-28 09:32 by 我為J狂
    “Dao.class 作為抽象類 BaseDao.class 的父類”這句話不太準確,應該這樣闡述“BaseDao實現了Dao接口”。

    # re: 畢業設計開發日記連載4:DAO模式和面向接口編程  回復  更多評論   

    2007-03-02 08:53 by 壞男孩
    孫JJ寫的書真的值得一睹

    # re: 畢業設計開發日記連載4:DAO模式和面向接口編程  回復  更多評論   

    2007-03-14 10:57 by L
    persistent層最好還是需要一個框架,尤其是到最后你需要transaction management的時候。
    主站蜘蛛池模板: 亚洲中文字幕久久精品无码2021| 亚洲国产精品一区二区三区在线观看 | 亚洲熟妇丰满xxxxx| 成人永久免费福利视频网站| 又硬又粗又长又爽免费看| 亚洲AV成人精品网站在线播放| 在线看片v免费观看视频777| 国产av无码专区亚洲av毛片搜 | 破了亲妺妺的处免费视频国产| 日本一区二区在线免费观看 | 免费一级毛片正在播放| 在线观看肉片AV网站免费| 亚洲宅男精品一区在线观看| 波多野结衣免费视频观看| 久久免费福利视频| 亚洲av无码专区青青草原| 亚洲国产精彩中文乱码AV| 精品国产免费一区二区| 免费在线观影网站| 亚洲av永久无码| 久久精品国产亚洲AV网站| 在线观看亚洲免费| 最近免费中文字幕大全高清大全1 最近免费中文字幕mv在线电影 | 亚洲AV综合色一区二区三区| 精品国产免费一区二区| 永久在线观看免费视频| 亚洲AV色欲色欲WWW| 亚洲成色在线影院| 亚洲成a人一区二区三区| 麻豆最新国产剧情AV原创免费 | 亚洲无线码一区二区三区| 天天看免费高清影视| 久久青草精品38国产免费| 日日摸日日碰夜夜爽亚洲| 亚洲无成人网77777| 成人午夜亚洲精品无码网站| 日韩毛片免费在线观看| 亚州免费一级毛片| 免费国产午夜高清在线视频 | 免费无遮挡无码永久视频| a级毛片免费高清视频|