青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

CppExplore

一切像霧像雨又像風

  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
  29 隨筆 :: 0 文章 :: 280 評論 :: 0 Trackbacks
作者:CppExplore 網址:http://www.shnenglu.com/CppExplore/
好久不更新了,拿以前的文章湊湊數,從java那邊轉一篇過來。

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

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

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

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

2、工廠方法模式:參與角色:抽象工廠類/具體工廠類/抽象產品類/具體產品類
     消除了簡單工廠的缺點
3、抽象工廠模式:簡單工廠模式與工廠方法模式的結合

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

1、代理模式:參與角色:代理與真實實體共同的抽象角色、代理角色、真實實體角色
       遠程代理:封裝對與遠程對象復雜的調用通訊過程,象調用本地對象一樣
       虛擬代理:真實實體加載時間過長的,使用虛擬代理提供友好的顯示方式,一邊加載實際的對象
       安全代理:調用真實的對象之前插入權限驗證模塊
       智能引用代理:調用真實的對象之后調用統計等相關操作模塊

2、享元模式:參與對象:建造工廠、抽象享元、具體享元
       分析對象的內蘊與外蘊狀態,即不變的私有屬性與變化的私有屬性。建造工廠使用備忘錄模式存儲已經建造的對象,建造對象的時候,以參數的形式傳遞享元對象的內蘊屬性。實際調用中,使用傳遞外部參數的方法使用外蘊變量。

   復合的享元對象組成的對象,不可以整體使用享元模式,但可以單個的享元對象屬性使用該模式
   優點:降低內存中的對象  缺點:設計復雜性 

3、門面模式:結構模式。為包含有很多對象的子系統提供統一的操作接口類,所有對該子系統的調用都通過這個類,降低子系統之間調用的復雜度,也符合笛比特法則(一個對象的朋友盡量少,只與朋友說話)

4、橋梁模式:參與角色:抽象化角色、抽象化的具體角色、實現化角色、實現化的具體角色兩個有繼承等級的對象群,一個對象群對另一個對象群有調用關系的時候使用
        目的:使抽象化與實現化解藕
五   各種具體模式(3)
1、策略:常用于算法族,將算法從依賴的環境中抽象出來形成
2、狀態:和策略非常接近,使用于有明顯狀態變化的時候
3、命令:命令的發起與執行解藕,命令類可以獨立演化,有助于做redo undo操作以及記錄所執行的命令
4、解釋:用于文法的解析
5、迭代子:java中有現成的實現,iterator
6、觀察者:常見,類似與模型視圖的關系,java中提供了oberver類和observable接口
7、調停者:處理混亂的類交互,抽象出中間類,將類間的交互都通過這個類完成
8、模版:將擁有同一父類的多個具體子類的共同操作提取出來形成抽象模版類
         原則:具體的私有屬性應該放到具體類中,抽象類中調用屬性通過屬性方法而不是直接調用屬性
               將私有屬性放到具體的類中,才能方便對父類進行多個實現。
         將行為看作劃分類的標準,以前我都是將數據模型看作劃分類的思想,以后應該重新審視行為在類中的重要作用,特別是在的繼承等級中。

posted on 2009-05-13 22:18 cppexplore 閱讀(2457) 評論(0)  編輯 收藏 引用

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            一区二区成人精品| 国产精品日韩在线观看| 久久av一区二区三区漫画| 免费观看成人www动漫视频| 欧美在线视频一区二区三区| 欧美日韩成人综合天天影院| 欧美电影在线观看完整版| 国产亚洲精品bt天堂精选| 亚洲美女精品成人在线视频| 最新亚洲一区| 久久影院午夜论| 蜜桃av一区二区在线观看| 国产亚洲精品一区二555| 亚洲亚洲精品在线观看| 宅男精品导航| 欧美体内谢she精2性欧美| 亚洲人精品午夜在线观看| 亚洲黄页一区| 欧美大片免费久久精品三p| 欧美成年人网| 亚洲韩国一区二区三区| 麻豆成人综合网| 欧美激情一区二区三区在线视频观看 | 久久人91精品久久久久久不卡| 国产精品拍天天在线| 中文精品视频| 欧美亚洲一级| 国产日韩精品在线播放| 欧美在线视屏 | 亚洲愉拍自拍另类高清精品| 欧美三级网址| 亚洲一本大道在线| 久久精品一区二区国产| 在线电影欧美日韩一区二区私密| 久久免费视频一区| 欧美mv日韩mv国产网站| 亚洲人成网站在线观看播放| 欧美激情亚洲激情| 在线一区二区视频| 欧美在线啊v一区| 伊人精品在线| 欧美搞黄网站| 亚洲综合色噜噜狠狠| 久久久美女艺术照精彩视频福利播放| 一区免费在线| 欧美日韩18| 午夜一区二区三视频在线观看| 麻豆视频一区二区| 一本大道av伊人久久综合| 国产精品久久久久久久一区探花| 欧美一区二区视频在线观看2020| 免费观看久久久4p| 亚洲视频一区二区在线观看| 国产欧美日韩伦理| 欧美电影免费观看网站 | 亚洲黄网站黄| 欧美亚洲三区| 在线看日韩欧美| 欧美视频在线观看免费| 久久成人精品| 99热在线精品观看| 美女精品网站| 午夜精品久久99蜜桃的功能介绍| 伊人久久大香线蕉综合热线 | 亚洲欧美电影院| 亚洲成色www8888| 国产精品久久久久一区| 男人的天堂亚洲在线| 亚洲欧美国产高清va在线播| 亚洲激情偷拍| 久久综合狠狠综合久久综合88| 亚洲小视频在线观看| 在线观看日韩| 国产欧美精品日韩精品| 欧美日韩国产精品 | 欧美视频在线免费| 久久亚洲精品伦理| 亚洲欧美综合| 99精品久久久| 亚洲欧洲日韩综合二区| 鲁鲁狠狠狠7777一区二区| 亚洲欧美日韩第一区| 日韩天堂在线视频| 有码中文亚洲精品| 国产亚洲一本大道中文在线| 国产精品www994| 欧美伦理91i| 欧美成人精品不卡视频在线观看| 久久国产精品一区二区三区| 亚洲在线第一页| 亚洲精选成人| 亚洲欧洲在线一区| 亚洲成人资源网| 免费亚洲视频| 欧美成人激情视频免费观看| 久久影视精品| 久久综合九色| 美女精品国产| 女同一区二区| 欧美承认网站| 男女激情久久| 久久综合导航| 美女网站久久| 欧美成在线观看| 亚洲国产精品va在线观看黑人| 欧美大色视频| 亚洲激情网站免费观看| 亚洲精品免费电影| 亚洲激情婷婷| 一区二区成人精品| 亚洲午夜未删减在线观看| 亚洲午夜视频在线| 亚洲欧美日韩在线不卡| 欧美一区二区三区男人的天堂| 欧美一区二区日韩一区二区| 欧美亚洲免费| 老司机免费视频一区二区| 欧美jizzhd精品欧美巨大免费| 欧美高清视频一区二区三区在线观看| 免费91麻豆精品国产自产在线观看| 欧美~级网站不卡| 欧美日韩视频在线| 国产精品伊人日日| 影音先锋亚洲电影| 日韩视频一区二区在线观看| 亚洲一区欧美激情| 久久精品三级| 亚洲国产黄色| 亚洲午夜久久久久久久久电影院| 先锋亚洲精品| 欧美电影在线观看| 国产精品国产三级国产专播精品人| 国产日韩在线看| 91久久久久久| 亚洲欧美日产图| 欧美成年网站| 亚洲网站在线| 久久久噜噜噜久久中文字幕色伊伊 | 久久精品在线播放| 欧美激情免费在线| 国产精品永久免费在线| 亚洲国产一二三| 午夜精品久久久久久久男人的天堂| 久久久久国产成人精品亚洲午夜| 亚洲承认在线| 性欧美18~19sex高清播放| 男女av一区三区二区色多| 国产精品美女久久久免费 | 国产精品一区二区视频| 在线免费观看视频一区| 亚洲午夜日本在线观看| 免费久久精品视频| 野花国产精品入口| 久久亚洲捆绑美女| 国产精品一区视频网站| 日韩视频在线观看一区二区| 久久国产精品网站| 日韩视频一区二区| 久久天天躁夜夜躁狠狠躁2022| 国产精品久久久爽爽爽麻豆色哟哟| 亚洲电影免费在线观看| 欧美一区二区三区喷汁尤物| 亚洲欧洲日产国码二区| 久久久青草婷婷精品综合日韩 | 1024精品一区二区三区| 性欧美暴力猛交另类hd| 亚洲日本免费电影| 久久综合给合| 国产综合色精品一区二区三区| 亚洲一区二区三区中文字幕| 欧美激情bt| 久久亚洲欧洲| 国自产拍偷拍福利精品免费一| 午夜激情久久久| av成人免费| 欧美日韩国产大片| 亚洲美女中出| 欧美电影打屁股sp| 久久人人爽人人爽爽久久| 国产一区二区三区四区hd| 欧美一区二区三区久久精品茉莉花| 亚洲美女在线看| 欧美日韩成人网| 一区二区欧美日韩| 亚洲精品少妇30p| 欧美破处大片在线视频| 亚洲久色影视| 亚洲精品在线免费| 欧美久色视频| 亚洲图片你懂的| 99亚洲一区二区| 国产精品国产三级国产专区53| 亚洲一区二区三区激情| 一本一本久久| 国产精品午夜视频| 久久精品国产一区二区三| 欧美一区2区三区4区公司二百| 国产午夜精品一区理论片飘花 | 久久国产精品电影| 久久精品91久久久久久再现|