<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的時候。
    主站蜘蛛池模板: 在线观看亚洲免费| 99在线热视频只有精品免费| 国产亚洲?V无码?V男人的天堂| 国产情侣久久久久aⅴ免费| 亚洲成a人片在线网站| 全部免费毛片免费播放| 999zyz**站免费毛片| 亚洲va久久久久| 亚洲国产精品无码久久久蜜芽| 免费无码精品黄AV电影| 日韩免费在线中文字幕| 亚洲性色成人av天堂| 国产精品V亚洲精品V日韩精品| 精品久久8x国产免费观看| 一级毛片正片免费视频手机看| 亚洲精品视频在线观看视频| 亚洲国产精品无码久久青草| 9久9久女女免费精品视频在线观看| 一区二区在线视频免费观看| 亚洲AV成人无码天堂| 中文国产成人精品久久亚洲精品AⅤ无码精品 | 亚洲一区二区电影| 免费在线观看你懂的| aⅴ在线免费观看| 永久免费AV无码网站国产| 亚洲成a人片在线不卡一二三区 | www亚洲精品少妇裸乳一区二区| 91av免费观看| 在线免费观看毛片网站| 九九美女网站免费| 日韩在线视频免费| 亚洲午夜理论片在线观看| 亚洲色偷偷av男人的天堂| 亚洲日本va在线视频观看| 国产午夜免费秋霞影院| 免费三级毛片电影片| 十八禁无码免费网站| 中文字幕免费在线看电影大全| 日本亚洲高清乱码中文在线观看| 国语成本人片免费av无码| 国产成人精品久久亚洲高清不卡 |