<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的時候。
    主站蜘蛛池模板: 无码一区二区三区AV免费| 亚洲AV福利天堂一区二区三| 日批日出水久久亚洲精品tv| 亚洲av无码不卡私人影院| 中文字幕亚洲日韩无线码| 久久精品国产亚洲AV网站| 亚洲导航深夜福利| 校园亚洲春色另类小说合集| 中文字幕免费在线看电影大全 | 亚洲成av人片在www鸭子| 一级一黄在线观看视频免费| 国产一区二区免费| 免费A级毛片无码免费视| 日本亚洲国产一区二区三区| 91亚洲va在线天线va天堂va国产| 亚洲成_人网站图片| 精品人妻系列无码人妻免费视频| 3d动漫精品啪啪一区二区免费| 日韩精品视频免费观看| 久久久无码精品亚洲日韩蜜桃| 亚洲综合国产成人丁香五月激情| 三级片免费观看久久| 日韩免费一区二区三区在线播放| 免费播放春色aⅴ视频| 亚洲黄色免费观看| 一级黄色免费大片| 久久久久久国产精品免费免费| 亚洲中文无韩国r级电影| 亚洲av专区无码观看精品天堂| 一个人免费播放在线视频看片| 成年免费大片黄在线观看岛国| 亚洲AV蜜桃永久无码精品| 亚洲精品亚洲人成在线麻豆| 一级视频免费观看| 国产男女性潮高清免费网站| 久久久久亚洲AV无码永不| 中国人免费观看高清在线观看二区| 24小时日本在线www免费的| 亚洲免费视频在线观看| 狠狠躁狠狠爱免费视频无码| 国产人成免费视频|