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

CppExplore

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

  C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
  29 隨筆 :: 0 文章 :: 280 評(píng)論 :: 0 Trackbacks
作者:CppExplore 網(wǎng)址:http://www.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>
            欧美激情一区| 欧美国产日韩视频| 欧美日韩国产三级| 亚洲三级观看| 亚洲日本成人女熟在线观看| 欧美精品久久久久久久久老牛影院| 亚洲三级网站| 性色av一区二区三区红粉影视| 99精品欧美一区| 亚洲国产精品嫩草影院| 99国产精品久久久久久久| 欧美黄色小视频| 亚洲三级国产| 亚洲国产高清视频| 欧美 亚欧 日韩视频在线| 欧美激情一区二区久久久| 伊人久久大香线| 久久人人97超碰精品888| 久久久夜色精品亚洲| 99国产精品私拍| 久久精品在线视频| 久久aⅴ国产紧身牛仔裤| 猛干欧美女孩| 性做久久久久久| 久久久久久久一区| 小黄鸭精品aⅴ导航网站入口| 欧美一区2区三区4区公司二百| 久久综合99re88久久爱| 久久久久青草大香线综合精品| 欧美日韩国产成人在线| 欧美伊人久久久久久久久影院 | 欧美日本一区二区视频在线观看| 亚洲欧美日韩在线一区| 麻豆精品在线视频| 亚洲综合色网站| 欧美欧美午夜aⅴ在线观看| 亚洲肉体裸体xxxx137| 亚洲黑丝一区二区| 国产精品久久久久一区| 免费视频一区| 国产日韩欧美精品在线| 国产亚洲视频在线| 久久国产精品99国产| 欧美激情 亚洲a∨综合| 久久五月婷婷丁香社区| 国产精品露脸自拍| 亚洲美女少妇无套啪啪呻吟| 亚洲国产清纯| 久久香蕉国产线看观看网| 久久国产精品毛片| 国产精品午夜电影| 亚洲天堂av电影| 日韩网站免费观看| 噜噜噜躁狠狠躁狠狠精品视频| 久久精品国产96久久久香蕉| 国产精品丝袜91| 亚洲最新视频在线| 亚洲一区二区三区免费在线观看 | 欧美一区二区性| 欧美在线视频一区二区| 国产精品久久久久999| 99国产精品视频免费观看一公开| 日韩视频在线观看| 欧美成在线视频| 鲁鲁狠狠狠7777一区二区| 国产日韩欧美高清免费| 午夜久久久久久久久久一区二区| 午夜久久久久久| 国产精品视频一二| 久久大香伊蕉在人线观看热2| 久久福利毛片| 影音先锋亚洲视频| 男同欧美伦乱| 亚洲伦理在线观看| 99国产一区| 国产精品ⅴa在线观看h| 午夜伦理片一区| 免费成人在线观看视频| 亚洲欧洲在线视频| 欧美另类在线观看| 99精品热视频只有精品10| 亚洲一区国产精品| 国产日韩欧美日韩大片| 久久影院午夜论| 亚洲免费观看在线视频| 亚洲欧美日韩精品一区二区| 国产有码在线一区二区视频| 久久综合色综合88| 99re热精品| 久久久免费av| 亚洲国产色一区| 国产精品乱码妇女bbbb| 久久综合电影| 在线视频一区二区| 久久综合久色欧美综合狠狠 | 国内成人在线| 欧美日韩调教| 久久久久久久综合| 99日韩精品| 免费在线成人av| 亚洲男人的天堂在线观看| 激情av一区二区| 国产精品久久福利| 玖玖精品视频| 欧美一区1区三区3区公司| 亚洲国产高清在线| 久久久久天天天天| 久久精品人人做人人爽| 亚洲精品影院在线观看| 久久精品国产亚洲一区二区| 亚洲人成7777| 国产亚洲网站| 国产精品theporn88| 欧美sm视频| 久久精品日产第一区二区| 亚洲天堂成人| 亚洲国产视频一区| 欧美专区日韩专区| 亚洲美女黄色| 在线观看福利一区| 国内伊人久久久久久网站视频| 欧美日韩亚洲一区| 免费短视频成人日韩| 久久久www成人免费无遮挡大片 | 欧美成人小视频| 久久一本综合频道| 久久精品国产欧美亚洲人人爽| 亚洲午夜在线观看| 在线亚洲欧美专区二区| 亚洲美女色禁图| 亚洲九九精品| 亚洲精品欧美激情| 亚洲肉体裸体xxxx137| 亚洲国产激情| 亚洲国产专区校园欧美| 亚洲电影免费观看高清完整版| 国产在线拍偷自揄拍精品| 国产精品一卡二卡| 国产精品视频一区二区高潮| 国产精品日韩欧美一区二区| 国产精品久久久久久久久久妞妞 | 玖玖玖国产精品| 免费成人性网站| 欧美精品激情在线观看| 欧美激情bt| 欧美日韩亚洲国产一区| 欧美日韩免费观看一区| 欧美视频在线观看免费网址| 欧美日韩在线播放一区二区| 国产精品成人久久久久| 国产精品一卡二| 尤物精品国产第一福利三区| 亚洲精品123区| 在线综合亚洲欧美在线视频| 亚洲自啪免费| 久久久精品久久久久| 免费一级欧美片在线播放| 欧美国产欧美亚洲国产日韩mv天天看完整 | 亚洲欧美中文字幕| 久久久久久久成人| 欧美成人在线免费观看| 亚洲精品国产系列| 一区二区三区福利| 欧美一区二视频| 女生裸体视频一区二区三区| 欧美日韩精品在线视频| 国产精品亚发布| 在线精品视频在线观看高清 | 国产精品美腿一区在线看| 国产欧美视频一区二区| 在线观看中文字幕不卡| 亚洲美女视频在线观看| 狠狠色综合网站久久久久久久| 欧美三级中文字幕在线观看| 国产日韩欧美高清免费| 最新亚洲激情| 性色一区二区| 亚洲激情网站免费观看| 亚洲欧美日韩一区二区| 免费日韩av| 国产欧美一区二区三区另类精品| 亚洲国产成人在线播放| 午夜欧美理论片| 亚洲国产美国国产综合一区二区| 亚洲午夜一区二区| 欧美成人国产一区二区 | 亚洲制服丝袜在线| 欧美v日韩v国产v| 国产亚洲美州欧州综合国| aa国产精品| 欧美成人免费一级人片100| 亚洲尤物影院| 欧美日本久久| 亚洲人成在线观看一区二区 | 午夜视频一区在线观看| 亚洲高清电影| 久久婷婷国产麻豆91天堂| 国产精品主播| 亚洲欧美色一区| 亚洲久久一区二区|