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

CppExplore

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

  C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
  29 隨筆 :: 0 文章 :: 280 評(píng)論 :: 0 Trackbacks
作者:CppExplore 網(wǎng)址:http://m.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>
            亚洲一区久久久| 99精品欧美一区| 亚洲精品一区中文| 一区视频在线看| 在线日韩中文| 99精品欧美一区二区蜜桃免费| 99精品黄色片免费大全| 亚洲尤物在线视频观看| 久久www成人_看片免费不卡| 麻豆av福利av久久av| 亚洲经典三级| 日韩视频在线观看| 亚洲男人第一网站| 欧美sm视频| 久久综合九色| 欧美成人综合网站| 一本色道久久综合亚洲精品按摩 | 欧美成人有码| 国产精品久久久久久久久婷婷| 国产日产精品一区二区三区四区的观看方式| 国产视频在线观看一区二区三区| 尤物yw午夜国产精品视频明星| 日韩一二三在线视频播| 欧美在线你懂的| 亚洲人成网站777色婷婷| 欧美伊人精品成人久久综合97| 欧美成人免费在线观看| 国产亚洲成年网址在线观看| 亚洲三级性片| 久久精品国产欧美激情| 亚洲欧洲日夜超级视频| 性色av香蕉一区二区| 欧美日韩一区二| 亚洲欧洲在线免费| 久久综合久久综合这里只有精品| 99xxxx成人网| 欧美成人免费小视频| 国内精品嫩模av私拍在线观看| 亚洲一区二区在线| 亚洲人精品午夜在线观看| 欧美在线黄色| 国产精品久久久久久久久久久久| 亚洲第一中文字幕| 久久亚洲视频| 亚洲欧美日韩另类精品一区二区三区| 欧美精品一区二区三区四区 | 亚洲一区二区三区久久| 美女啪啪无遮挡免费久久网站| 亚洲网站视频福利| 欧美日韩大陆在线| 日韩亚洲国产欧美| 亚洲激情啪啪| 欧美国产日本高清在线| 91久久夜色精品国产网站| 欧美成人在线影院| 美女主播视频一区| 亚洲国内自拍| 亚洲国产黄色| 欧美日韩高清一区| 亚洲在线观看免费| 亚洲午夜电影| 国产亚洲精品高潮| 久久天天躁夜夜躁狠狠躁2022| 午夜视黄欧洲亚洲| 韩国成人精品a∨在线观看| 欧美在线视屏| 欧美freesex8一10精品| 国产精品久久久久秋霞鲁丝| 一区二区激情视频| 亚洲欧洲一区二区三区| 欧美黄色网络| 亚洲自拍偷拍视频| 香蕉久久久久久久av网站| 国产拍揄自揄精品视频麻豆| 久久国产福利国产秒拍| 久久er精品视频| 亚洲国内自拍| 一本到12不卡视频在线dvd| 国产精品人人做人人爽| 久久久97精品| 欧美大片免费观看| 亚洲免费视频网站| 欧美一区二区精品| 在线观看日韩欧美| 亚洲精品一区二区三区蜜桃久| 欧美三级视频在线播放| 久久狠狠久久综合桃花| 欧美电影在线| 久久成人18免费网站| 蜜桃久久av| 欧美在线日韩| 欧美大片一区二区| 欧美在线不卡视频| 欧美精品国产一区二区| 久久久人成影片一区二区三区| 欧美激情一区三区| 欧美网站在线观看| 久久只有精品| 国产精品人人做人人爽人人添| 欧美a级理论片| 国产精品资源| 亚洲精品美女久久7777777| 国产一区白浆| 99国产精品久久久久久久久久 | 一区二区免费看| 欧美影院精品一区| 这里只有精品在线播放| 久久激情视频久久| 亚洲愉拍自拍另类高清精品| 老司机久久99久久精品播放免费| 午夜影视日本亚洲欧洲精品| 欧美大尺度在线观看| 久久色中文字幕| 国产日韩在线一区| 中文一区二区| 亚洲一区二区三区中文字幕在线| 久久资源av| 麻豆av福利av久久av| 国产精品一区二区a| 一本久久综合亚洲鲁鲁| 亚洲人成网站精品片在线观看| 久久久精品国产99久久精品芒果| 欧美在线免费观看| 国产精品夜夜夜| 中文在线一区| 午夜视频久久久久久| 欧美日韩精品福利| 亚洲精品美女在线观看| 久久国产夜色精品鲁鲁99| 国产亚洲欧美另类中文 | 欧美激情网友自拍| 狠狠综合久久| 久久精品免费观看| 久久久久久免费| 国产欧美日韩91| 西西人体一区二区| 羞羞漫画18久久大片| 国产精品久久久一本精品| 亚洲午夜视频在线| 欧美一区二区三区四区在线 | 欧美午夜电影在线| 一本久道久久综合中文字幕| 日韩午夜免费| 欧美色图一区二区三区| 一区二区三区免费网站| 亚洲视频一区| 国产精品麻豆va在线播放| 中文精品一区二区三区 | 亚洲欧美影音先锋| 亚洲欧美在线另类| 国产视频久久久久| 久久gogo国模裸体人体| 久久综合九色欧美综合狠狠| 亚洲第一视频网站| 欧美精品免费播放| 亚洲一区二区三区四区五区黄| 亚洲欧美电影在线观看| 国产精品女主播一区二区三区| 小处雏高清一区二区三区| 美女精品一区| 日韩一区二区免费看| 国产精品欧美久久久久无广告| 性做久久久久久久久| 欧美风情在线观看| 欧美日韩亚洲视频| 中文网丁香综合网| 久久影音先锋| 一本久久综合亚洲鲁鲁| 国产精品免费小视频| 两个人的视频www国产精品| 亚洲免费精彩视频| 蜜臀91精品一区二区三区| 亚洲图片欧美一区| 在线观看福利一区| 国产精品盗摄久久久| 久久全球大尺度高清视频| 一本色道**综合亚洲精品蜜桃冫| 久久精品91| 一区二区日韩伦理片| 国产亚洲精久久久久久| 欧美精品日韩一本| 久久噜噜噜精品国产亚洲综合| 这里只有精品视频| 亚洲国产日韩一区| 久久亚洲国产精品日日av夜夜| 日韩一级片网址| 在线观看的日韩av| 国产日韩精品一区二区| 欧美日韩精品在线| 美女国内精品自产拍在线播放| 亚洲欧美日韩国产中文在线| 亚洲美女中文字幕| 欧美激情2020午夜免费观看| 久久国产欧美日韩精品| 欧美一区二区三区视频免费播放 | 久久国产精彩视频| 一本色道久久综合亚洲精品婷婷| 黄色成人精品网站| 国产精品一区在线观看| 欧美日韩国产首页在线观看|