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

CppExplore

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

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

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

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

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

   缺點(diǎn):添加新產(chǎn)品的時(shí)候,雖然產(chǎn)品相關(guān)代碼符合開閉原則,但對(duì)工廠類本身并不符合,需要修改其中的產(chǎn)生產(chǎn)品方法或者添加新的產(chǎn)生方法(工廠里實(shí)現(xiàn)的不同造成的修改不同)來支持新的產(chǎn)品類
   退化方式:省略掉工廠角色,抽象產(chǎn)品類擔(dān)任具體產(chǎn)品類的工廠角色:提供靜態(tài)的getInstance方法,比如java類庫中的DateFormat類,(本人認(rèn)為這樣很不符合開閉原則,父類中出現(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ì)象來一一構(gòu)造
2、原始模式:深拷貝、淺拷貝
3、適配器模式:將adaptee類適配成目標(biāo)接口
4、合成模式:參與角色:composite接口、樹枝節(jié)點(diǎn)類、樹葉節(jié)點(diǎn)類
      分成透明式和安全式兩種,各有優(yōu)缺點(diǎn)
      (1)前者將管理子對(duì)象的方法放到接口中,這樣樹型結(jié)構(gòu)中的所有對(duì)象都是透明的,都可以統(tǒng)一調(diào)用,但是葉節(jié)點(diǎn)并沒有管理子對(duì)象的能力,因此透明但不安全
      (2)后者將管理子對(duì)象的方法下放到樹枝節(jié)點(diǎn)類中,這樣安全但不透明
5、裝飾模式:繼承已有類的接口,提供和已有類相同的方法,并對(duì)已有類的功能提供擴(kuò)展(通過組合已有對(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í)候就必須使用它本身來調(diào)用,退化到一半裝飾模式、一半適配器模式。
四   各種具體模式(2)

1、代理模式:參與角色:代理與真實(shí)實(shí)體共同的抽象角色、代理角色、真實(shí)實(shí)體角色
       遠(yuǎn)程代理:封裝對(duì)與遠(yuǎn)程對(duì)象復(fù)雜的調(diào)用通訊過程,象調(diào)用本地對(duì)象一樣
       虛擬代理:真實(shí)實(shí)體加載時(shí)間過長(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、門面模式:結(jié)構(gòu)模式。為包含有很多對(duì)象的子系統(tǒng)提供統(tǒng)一的操作接口類,所有對(duì)該子系統(tǒng)的調(diào)用都通過這個(gè)類,降低子系統(tǒng)之間調(diào)用的復(fù)雜度,也符合笛比特法則(一個(gè)對(duì)象的朋友盡量少,只與朋友說話)

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)境中抽象出來形成
2、狀態(tài):和策略非常接近,使用于有明顯狀態(tài)變化的時(shí)候
3、命令:命令的發(fā)起與執(zhí)行解藕,命令類可以獨(dú)立演化,有助于做redo undo操作以及記錄所執(zhí)行的命令
4、解釋:用于文法的解析
5、迭代子:java中有現(xiàn)成的實(shí)現(xiàn),iterator
6、觀察者:常見,類似與模型視圖的關(guān)系,java中提供了oberver類和observable接口
7、調(diào)停者:處理混亂的類交互,抽象出中間類,將類間的交互都通過這個(gè)類完成
8、模版:將擁有同一父類的多個(gè)具體子類的共同操作提取出來形成抽象模版類
         原則:具體的私有屬性應(yīng)該放到具體類中,抽象類中調(diào)用屬性通過屬性方法而不是直接調(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   博問   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>
            久久久亚洲国产天美传媒修理工| 欧美国产精品va在线观看| 亚洲三级观看| 欧美激情久久久久久| 日韩亚洲欧美成人| 中文精品在线| 好吊日精品视频| 亚洲电影免费观看高清完整版| 欧美精品www在线观看| 亚洲一区二区三区四区在线观看| 亚洲一区免费在线观看| 黄色成人av网| 亚洲精品少妇30p| 国产区精品在线观看| 老司机亚洲精品| 欧美日韩另类在线| 久久国产一区| 欧美日韩123| 久久手机精品视频| 欧美日韩mp4| 久久青草久久| 欧美日韩国产综合一区二区| 久久经典综合| 欧美xxx在线观看| 欧美在线免费观看亚洲| 亚洲破处大片| 欧美一区91| 亚洲视频网在线直播| 欧美在线视频a| 亚洲一级高清| 美女日韩在线中文字幕| 欧美亚洲综合久久| 欧美国产视频日韩| 久热国产精品视频| 国产精品香蕉在线观看| 亚洲精品黄网在线观看| 欲色影视综合吧| 亚洲永久精品大片| 夜夜嗨av一区二区三区免费区| 久久国产精品99精品国产| 亚洲欧美久久久久一区二区三区| 模特精品在线| 免费亚洲电影| 激情久久五月| 欧美一区二区视频在线观看2020| 这里是久久伊人| 欧美成人精品一区二区三区| 久久免费视频网站| 国产伦精品一区二区三| 在线天堂一区av电影| 日韩写真视频在线观看| 免费日韩av片| 亚洲高清不卡av| 亚洲激情一区| 免费人成网站在线观看欧美高清| 久久免费视频在线观看| 国产亚洲一区二区三区在线观看| 亚洲特级毛片| 午夜精品一区二区在线观看 | 亚洲欧美在线观看| 欧美精品色网| 亚洲电影欧美电影有声小说| 在线免费精品视频| 久久网站免费| 亚洲国产精品久久久久秋霞蜜臀| 亚洲黄色天堂| 欧美精品黄色| 一区二区三区av| 欧美一区二区精品久久911| 国产精品久久久久久av下载红粉| 一区二区日韩精品| 欧美一区激情| 依依成人综合视频| 免费国产一区二区| 亚洲毛片在线| 欧美一区二区三区免费在线看| 国产精品私拍pans大尺度在线| 午夜久久tv| 模特精品在线| 一本色道久久综合亚洲精品婷婷 | 一本色道久久88亚洲综合88| 欧美日韩免费高清| 亚洲欧美日韩区| 蜜乳av另类精品一区二区| 亚洲人成毛片在线播放| 欧美日韩精品免费观看视频完整| 一本一本久久a久久精品综合妖精| 久久久久国产一区二区三区四区 | 女生裸体视频一区二区三区| 亚洲电影成人| 国产精品久久久久久av下载红粉| 午夜免费在线观看精品视频| 欧美va亚洲va国产综合| 中文亚洲欧美| 狠狠久久五月精品中文字幕| 欧美精品一区二区在线观看| 亚洲欧美激情视频| 亚洲国产精品一区二区三区| 午夜在线视频观看日韩17c| 亚洲高清在线播放| 国产精品国产三级国产普通话三级| 香蕉久久夜色精品| 亚洲欧洲午夜| 久久夜色精品国产欧美乱极品 | 狠狠色综合一区二区| 欧美精品xxxxbbbb| 香港久久久电影| 亚洲裸体俱乐部裸体舞表演av| 久久久久久有精品国产| 亚洲一区二区欧美日韩| 亚洲国产另类久久精品| 国产欧美日韩麻豆91| 欧美日韩另类视频| 欧美va亚洲va香蕉在线| 欧美一区二区三区在线免费观看| 亚洲欧洲日夜超级视频| 麻豆精品视频在线观看视频| 先锋影音久久| 亚洲一级高清| 一区二区三区四区五区精品视频| 一区二区三区在线视频播放| 国产精品久久久久久久久久久久| 欧美精品v日韩精品v韩国精品v | 亚洲影视九九影院在线观看| 亚洲国产成人精品女人久久久 | 久久久久国产一区二区三区| 午夜精品久久久久久99热| 亚洲看片一区| 亚洲人成网站在线播| 欧美激情bt| 欧美激情视频免费观看| 开元免费观看欧美电视剧网站| 欧美一区二区三区婷婷月色| 性18欧美另类| 亚洲欧美三级在线| 亚洲欧美一区二区三区在线| 亚洲一区二区三区午夜| 在线综合亚洲欧美在线视频| 一区二区三区久久网| 一区二区三区欧美激情| 中文在线一区| 亚洲女女女同性video| 香蕉久久夜色| 久久精品五月| 久热精品视频在线观看| 农夫在线精品视频免费观看| 欧美福利在线观看| 亚洲人成欧美中文字幕| 99热精品在线| 亚洲免费小视频| 久久久精品动漫| 欧美多人爱爱视频网站| 欧美在线啊v一区| 最新亚洲一区| 亚洲精品久久久蜜桃| 亚洲啪啪91| 亚洲午夜未删减在线观看| 亚洲欧美日韩国产一区二区三区 | 久久久久久久久岛国免费| 久久久久久香蕉网| 欧美高清一区二区| 欧美亚州在线观看| 国产亚洲精品久久久久婷婷瑜伽| 激情婷婷亚洲| 亚洲作爱视频| 久久黄色影院| 亚洲高清资源| 亚洲性图久久| 久久综合九色综合久99| 欧美日韩喷水| 一区二区三区在线看| 99香蕉国产精品偷在线观看| 午夜天堂精品久久久久| 另类酷文…触手系列精品集v1小说| 亚洲国产高清自拍| 亚洲欧美一区二区三区久久| 牛牛精品成人免费视频| 国产精品麻豆成人av电影艾秋 | 欧美日韩一区二区三区在线观看免| 国产精品日韩精品欧美精品| 在线播放中文字幕一区| 亚洲视频一起| 欧美顶级大胆免费视频| 亚洲一区国产一区| 欧美国产第一页| 国产日韩在线看| 这里只有精品丝袜| 欧美/亚洲一区| 欧美亚洲尤物久久| 欧美日韩久久| 亚洲国产欧美一区二区三区同亚洲| 亚洲欧美日韩天堂一区二区| 欧美激情一二三区| 欧美在线观看www| 国产精品久久久久三级| 亚洲免费观看高清完整版在线观看熊| 欧美一激情一区二区三区| 欧美高清视频www夜色资源网| 欧美一区二区在线| 国产精品尤物福利片在线观看|