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

CppExplore

一切像霧像雨又像風(fēng)

  C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
  29 隨筆 :: 0 文章 :: 280 評(píng)論 :: 0 Trackbacks
作者:CppExplore 網(wǎng)址:http://m.shnenglu.com/CppExplore/
好久不更新了,拿以前的文章湊湊數(shù),從java那邊轉(zhuǎn)一篇過(guò)來(lái)。

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

java中設(shè)計(jì)不當(dāng)?shù)念悾篶alendar:作為接口,含有與具體的歷法(羅馬歷法)相關(guān)的常量,不能擴(kuò)展到中國(guó)的陰歷歷法(不符合開(kāi)閉原則)
                    properies類:濫用繼承,繼承至hashtable,應(yīng)當(dāng)使用聚合

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

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

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

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

1、代理模式:參與角色:代理與真實(shí)實(shí)體共同的抽象角色、代理角色、真實(shí)實(shí)體角色
       遠(yuǎn)程代理:封裝對(duì)與遠(yuǎn)程對(duì)象復(fù)雜的調(diào)用通訊過(guò)程,象調(diào)用本地對(duì)象一樣
       虛擬代理:真實(shí)實(shí)體加載時(shí)間過(guò)長(zhǎng)的,使用虛擬代理提供友好的顯示方式,一邊加載實(shí)際的對(duì)象
       安全代理:調(diào)用真實(shí)的對(duì)象之前插入權(quán)限驗(yàn)證模塊
       智能引用代理:調(diào)用真實(shí)的對(duì)象之后調(diào)用統(tǒng)計(jì)等相關(guān)操作模塊

2、享元模式:參與對(duì)象:建造工廠、抽象享元、具體享元
       分析對(duì)象的內(nèi)蘊(yùn)與外蘊(yùn)狀態(tài),即不變的私有屬性與變化的私有屬性。建造工廠使用備忘錄模式存儲(chǔ)已經(jīng)建造的對(duì)象,建造對(duì)象的時(shí)候,以參數(shù)的形式傳遞享元對(duì)象的內(nèi)蘊(yùn)屬性。實(shí)際調(diào)用中,使用傳遞外部參數(shù)的方法使用外蘊(yùn)變量。

   復(fù)合的享元對(duì)象組成的對(duì)象,不可以整體使用享元模式,但可以單個(gè)的享元對(duì)象屬性使用該模式
   優(yōu)點(diǎn):降低內(nèi)存中的對(duì)象  缺點(diǎn):設(shè)計(jì)復(fù)雜性 

3、門(mén)面模式:結(jié)構(gòu)模式。為包含有很多對(duì)象的子系統(tǒng)提供統(tǒng)一的操作接口類,所有對(duì)該子系統(tǒng)的調(diào)用都通過(guò)這個(gè)類,降低子系統(tǒng)之間調(diào)用的復(fù)雜度,也符合笛比特法則(一個(gè)對(duì)象的朋友盡量少,只與朋友說(shuō)話)

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

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

只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   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>
            在线国产精品一区| 麻豆成人精品| 欧美第十八页| 亚洲精品1区| 亚洲国产日韩精品| 最新中文字幕一区二区三区| 亚洲免费不卡| 亚洲综合精品一区二区| 久久精品欧美日韩精品| 欧美va日韩va| 国产精品免费观看视频| 一区二区三区在线观看欧美| 日韩一区二区精品| 久久精品人人做人人综合| 欧美成人一区二区三区| 日韩视频永久免费| 欧美中文字幕| 欧美日韩三级| 亚洲第一伊人| 午夜精品久久久99热福利| 麻豆久久精品| 亚洲图片欧洲图片av| 久久久久久久高潮| 国产精品v日韩精品v欧美精品网站 | 久久精品国产一区二区三区| 免费成人高清视频| 亚洲一本视频| 欧美极品在线观看| 激情久久五月| 欧美一区亚洲一区| 亚洲久久一区二区| 美女精品在线观看| 国产中文一区二区| 亚洲欧美乱综合| 亚洲第一成人在线| 久久黄色网页| 久久久99国产精品免费| 亚洲在线一区二区三区| 暖暖成人免费视频| 羞羞色国产精品| 国产精品久久久久av免费| 亚洲精一区二区三区| 久久久之久亚州精品露出| 亚洲视频碰碰| 欧美视频成人| 亚洲深爱激情| 99re6热在线精品视频播放速度| 美女尤物久久精品| 一区在线免费| 久热精品视频在线| 久久亚洲国产精品一区二区| 国产亚洲美州欧州综合国| 午夜亚洲激情| 亚洲欧美日韩第一区| 国产乱码精品一区二区三区忘忧草| 亚洲尤物精选| 亚洲一级特黄| 国产精品视频自拍| 久久99伊人| 久久精品国产一区二区三| 黑人巨大精品欧美黑白配亚洲| 久久色在线播放| 久久色在线播放| 在线观看成人网| 欧美国产亚洲另类动漫| 欧美成人国产| 亚洲午夜精品福利| 亚洲永久免费av| 国产亚洲精品综合一区91| 噜噜噜躁狠狠躁狠狠精品视频 | 欧美77777| 亚洲激情在线激情| 亚洲欧洲视频在线| 国产精品成人av性教育| 欧美一区二区三区婷婷月色 | 久久久无码精品亚洲日韩按摩| 黄色亚洲在线| 亚洲第一网站| 国产精品久久久久久久久久ktv | 精品二区久久| 亚洲国产日本| 国产精品麻豆va在线播放| 久久久久久噜噜噜久久久精品| 久久天天躁狠狠躁夜夜av| 99国产欧美久久久精品| 亚洲综合日韩在线| 亚洲第一视频| 永久555www成人免费| 麻豆成人综合网| 99精品福利视频| 在线一区二区三区四区| 国产一区二区三区久久久久久久久| 欧美aⅴ99久久黑人专区| 欧美日韩一区二区欧美激情| 欧美专区日韩视频| 欧美精品激情在线观看| 欧美一区二视频在线免费观看| 久久五月天婷婷| 亚洲欧美综合| 免费久久精品视频| 久久精品日韩欧美| 欧美另类99xxxxx| 久久亚洲色图| 国产精品久久一卡二卡| 亚洲国产精品美女| 国产主播一区二区| 亚洲亚洲精品三区日韩精品在线视频 | 午夜在线观看免费一区| 免费成人在线观看视频| 西西裸体人体做爰大胆久久久| 欧美高清日韩| 欧美成人性网| 一区二区在线免费观看| 午夜精品国产更新| 亚洲综合色视频| 欧美日韩精品免费观看视频完整| 欧美3dxxxxhd| 亚洲成在人线av| 久久蜜桃资源一区二区老牛 | 亚洲大胆人体视频| 欧美一区二区在线视频| 欧美亚洲一区二区在线观看| 欧美精品一区二区三区在线看午夜 | 亚洲黄色成人久久久| 久久精品五月婷婷| 久久久久久尹人网香蕉| 国产人妖伪娘一区91| 亚洲一线二线三线久久久| 亚洲系列中文字幕| 欧美日韩专区在线| 一区二区三区.www| 亚洲一区亚洲二区| 国产精品久久久久久久7电影| 99国产精品久久久久久久成人热| 亚洲国产一区二区在线| 免费人成精品欧美精品| 亚洲丁香婷深爱综合| 日韩一级二级三级| 欧美日韩国产综合视频在线观看 | 欧美一级理论片| 小黄鸭精品aⅴ导航网站入口| 欧美色大人视频| 一区二区欧美激情| 性久久久久久久久| 国产一区亚洲| 另类春色校园亚洲| 亚洲欧洲三级| 午夜视频在线观看一区二区| 国产精品一区二区在线观看网站| 欧美一区二区三区播放老司机| 久久久精品国产99久久精品芒果| 一区二区在线观看视频| 欧美黄色影院| 中国成人在线视频| 久久久青草婷婷精品综合日韩| 影音先锋中文字幕一区二区| 欧美激情亚洲| 亚洲男人av电影| 久久综合999| 99亚洲伊人久久精品影院红桃| 欧美午夜片在线免费观看| 午夜精品免费| 亚洲高清不卡在线| 亚洲欧美综合一区| 在线播放亚洲| 国产精品久久久久久久久久尿 | 欧美激情视频一区二区三区不卡| 亚洲理伦电影| 国产欧美日韩在线视频| 模特精品在线| 香蕉成人伊视频在线观看| 欧美成人自拍| 欧美一区二区视频观看视频| 91久久久久久国产精品| 国产精品大全| 免费在线欧美视频| 亚洲欧美色一区| 亚洲毛片视频| 欧美国产高潮xxxx1819| 午夜在线成人av| 日韩系列在线| 亚洲电影网站| 国产亚洲精品综合一区91| 欧美日韩日本国产亚洲在线| 久久五月激情| 欧美一区二区免费| 在线亚洲观看| 日韩午夜激情电影| 欧美成人一区二区三区| 久久国产手机看片| 午夜精品久久久久久久99樱桃 | 99精品国产一区二区青青牛奶| 久久美女性网| 欧美在线3区| 亚洲男同1069视频| 亚洲一级在线观看| 亚洲精品乱码久久久久久按摩观| 国产在线精品二区| 国产精品一区二区久久国产| 欧美午夜久久|