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

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

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

    JavaExplore

    一切像霧像雨又像風
    posts - 19, comments - 45, trackbacks - 0, articles - 0

    最近發(fā)現(xiàn)一本<java與模式>,正好再溫故一下當年的專業(yè)課內(nèi)容,下面是這幾天記的筆記.(并不是系統(tǒng)的講解書中的內(nèi)容)
    一  綜述:
    1、不要使用接口定義常量
    2、自己少用標志接口
    3、不要繼承具體類
    4、類層次的中間節(jié)點應該是接口或者抽象類,葉子是具體類
    5、子類應當擴展父類的責任,而不是覆寫父類的責任
    6、面向接口編程
    7、不要濫用繼承,組合優(yōu)先于繼承

    java中設計不當?shù)念悾篶alendar:作為接口,含有與具體的歷法(羅馬歷法)相關的常量,不能擴展到中國的陰歷歷法(不符合開閉原則)
                        properies類:濫用繼承,繼承至hashtable,應當使用聚合

    8、笛比特法則:只與自己的直接朋友通信,不與陌生人通信(1)狹義笛比特法則:只與朋友通訊,通過自己的朋友傳遞間接的調(diào)用(2)結合依賴倒轉原則修改:不必通過朋友傳遞間接的調(diào)用,通過陌生人的抽象接口調(diào)用陌生人的行為(依舊不能與具體的陌生人發(fā)生通信)
    9、盡量降低類中成員的訪問權限,不要設計退化類(類似c中struct)。
            java中的point2D以及Dinmension2D類有這種設計缺陷(不過這種情況問題不大)
    10、如果多個具體的產(chǎn)品類沒有共同的商業(yè)邏輯,就可以把它們抽象到一個接口中,如果有共同的商業(yè)邏輯,就把共同的部分抽象到抽象類中,共同的部分盡量向類繼承層次的上層移動,以達到復用的目的
    二   工廠模式
    1、簡單工廠模式:參與角色:工廠/抽象產(chǎn)品類/具體產(chǎn)品類

       缺點:添加新產(chǎn)品的時候,雖然產(chǎn)品相關代碼符合開閉原則,但對工廠類本身并不符合,需要修改其中的產(chǎn)生產(chǎn)品方法或者添加新的產(chǎn)生方法(工廠里實現(xiàn)的不同造成的修改不同)來支持新的產(chǎn)品類
       退化方式:省略掉工廠角色,抽象產(chǎn)品類擔任具體產(chǎn)品類的工廠角色:提供靜態(tài)的getInstance方法,比如java類庫中的DateFormat類,(本人認為這樣很不符合開閉原則,父類中出現(xiàn)與具體子類相關的代碼,不方便擴展,添加新產(chǎn)品的時候,修改的時候缺點與原簡單工廠的工廠角色類似)

    2、工廠方法模式:參與角色:抽象工廠類/具體工廠類/抽象產(chǎn)品類/具體產(chǎn)品類
         消除了簡單工廠的缺點


    3、抽象工廠模式:簡單工廠模式與工廠方法模式的結合

    4、單例模式:餓漢和懶漢兩種,前者將本身對象作為靜態(tài)私有屬性事先生成,后者推遲到調(diào)用的時候,后者需要考慮多線程的時候,前面需要加線程安全關鍵字(注意),java中還是前者為優(yōu)。
       不要濫用單例,只有系統(tǒng)要求只有一個類的實例的時候才調(diào)用
       有的單例可能有狀態(tài)屬性,這就為多例模式提供了可能
       含有私有屬性的類作成單例的時候尤其要注意:一是私有屬性的線程安全,確實需要的時候可以加線程安全關鍵字,比如系統(tǒng)中的log類,二是確認這些屬性是不是可以所有線程共享的,類似普通類的static
    三   各種具體模式(1)
    1、建造模式:參與角色4個:指導者、抽象建造對象、具體建造對象、產(chǎn)品
          一個復雜的產(chǎn)品有很多的零部件,就可以使用具體的建造對象來一一構造
    2、原始模式:深拷貝、淺拷貝
    3、適配器模式:將adaptee類適配成目標接口
    4、合成模式:參與角色:composite接口、樹枝節(jié)點類、樹葉節(jié)點類
          分成透明式和安全式兩種,各有優(yōu)缺點
          (1)前者將管理子對象的方法放到接口中,這樣樹型結構中的所有對象都是透明的,都可以統(tǒng)一調(diào)用,但是葉節(jié)點并沒有管理子對象的能力,因此透明但不安全
          (2)后者將管理子對象的方法下放到樹枝節(jié)點類中,這樣安全但不透明
    5、裝飾模式:繼承已有類的接口,提供和已有類相同的方法,并對已有類的功能提供擴展(通過組合已有對象,調(diào)用已有對象方法的時候加入新的代碼)
          (1)透明的裝飾模式(純粹的裝飾模式):裝飾類、被裝飾類繼承于同一接口,而且裝飾類只實現(xiàn)接口的方法,不提供額外方法的實現(xiàn),調(diào)用該類的時候使用接口聲明調(diào)用(實例化當然還是自己的構造函數(shù)),即該類的所有方法都是透明的
          (2)半透明的裝飾模式(退化的裝飾模式):裝飾類、被裝飾類繼承于同一接口,裝飾類不僅實現(xiàn)接口的方法,還提供額外方法的實現(xiàn),這樣要調(diào)用它獨特的方法的時候就必須使用它本身來調(diào)用,退化到一半裝飾模式、一半適配器模式。

    Feedback

    # re: 《java與模式》筆記  回復  更多評論   

    2006-08-24 22:46 by danxin
    有收獲,<java與模式>有電子版么?3KU!

    # re: 《java與模式》筆記  回復  更多評論   

    2006-08-25 10:55 by yeyiliang
    我也通讀了這本閻宏博士的大部頭,感覺他說的很通俗易懂,你所總結的也相當不錯,繼續(xù)加油,他還談到了很多類似的don't do。
    但他的內(nèi)容略為簡單了些,篇幅過多的放在代碼示范上,如果你想了解這些不應該做的事情為什么不應該做,建議你看effective java,閻宏有不少觀點借自其中,而且該書中更詳細的探討了某個行為的利弊以及可供替代的選擇。

    # re: 《java與模式》筆記  回復  更多評論   

    2006-08-25 12:12 by javaexplore--downline
    @danxin
    有電子版,baidu google找下.這本書和gof的設計模式中文版網(wǎng)上都有電子版,我下過.電子版還是不建議看這本java與模式,廢話太多,示例代碼太多,思維太發(fā)散,看電子版的速度應該很慢,不如去看gof的設計模式了

    # re: 《java與模式》筆記  回復  更多評論   

    2006-08-28 22:25 by jeff_weng
    我覺得學習設計模式最好還是要有代碼示例,我也是從這本書開始熟悉設計模式的。

    # re: 【原創(chuàng)】《java與模式》筆記[未登錄]  回復  更多評論   

    2007-03-15 00:13 by 呵呵
    http://down1.tomore.com/book/20061227/2006122710430818162.pdf

    電子書 可以下的

    # re: 【原創(chuàng)】《java與模式》筆記[未登錄]  回復  更多評論   

    2007-11-28 22:49 by ken
    你們說下過電子書能不能下下來給我發(fā)過來啊,謝謝.我的電子郵箱是
    wangbaojun19851212@163.com

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 欧美大尺寸SUV免费| 99热这里有免费国产精品| 一二三四在线播放免费观看中文版视频 | 国产一级淫片视频免费看| 亚洲自偷自偷在线成人网站传媒| 曰批全过程免费视频播放网站| 亚洲综合国产精品| 免费观看黄色的网站| 亚洲欧洲尹人香蕉综合| 免费A级毛片无码A∨免费| 亚洲成人免费网址| 好爽又高潮了毛片免费下载| 亚洲精品久久久久无码AV片软件| 色吊丝最新永久免费观看网站| 亚洲国产精品日韩av不卡在线 | 91视频免费网站| 亚洲天堂中文字幕| 国产免费久久精品99re丫y| 亚洲中文字幕无码久久2020 | 不卡一卡二卡三亚洲| 99re6在线视频精品免费| 久久久久亚洲av无码尤物| 免费看又黄又无码的网站| 亚洲综合校园春色| 国产精品冒白浆免费视频| 日本精品久久久久久久久免费| 国产成人精品日本亚洲专区 | 亚洲国产美女精品久久| 精品国产免费一区二区| 精品一区二区三区免费视频| 久久久亚洲AV波多野结衣| 免费鲁丝片一级在线观看| 亚洲天堂免费在线视频| 2022年亚洲午夜一区二区福利 | 免费一级毛片女人图片| 免费无码又爽又刺激一高潮| 亚洲熟妇无码爱v在线观看| 日韩成人在线免费视频| A片在线免费观看| 亚洲精品国产av成拍色拍| 亚洲国产精品成人久久|