• <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>

            DJ's c++ blog

            c++學習歷程

            常用鏈接

            統計

            最新評論

            啃書筆記:設計模式

            最近在啃的書,都是大部頭,不方便隨身攜帶.于是,就在包里丟了本<設計模式解析>,以便平時沒事干的時候看.

            可是由于看了的很多東西都不能立刻投入到實用中,久而久之就很容易忘記.(effective那兩本就是這樣).

            于是就想在讀書的同時寫寫一些關鍵點以及理解,權當加深記憶,還有鍛煉表達能力.

            這個坑就獻給<設計模式解析>,<設計模式>這兩書吧.前者是聽到網上評論說不錯,讀了再讀<設計模式>會理解的更好,于是就入了.現在在讀.

            由于這是剛看剛寫,如果有不正確的,希望賜教,見笑啦.
            ======================================================================

            內聚性指的是類內部組成部分之間相互聯系的緊密程度
            耦合性指的是一個類與其它類之間聯系的緊密程度

            封裝變化
            用類的聚合代替繼承

            Facade

            "為子系統中的一組接口提供一個統一的接口.Facade模式定義了一個更高層的接口,使子系統更加容易使用"

            Facade模式是提供一個新的,更加簡單以及符合實用的接口,來使用一個復雜系統的子集.
            我寫的那個俄羅斯方塊中的Console類,貌似就是符合Facade模式的,需要用的控制臺API(占總數的一小部分)封裝到Consol類中,使得控制方塊的顯示改變更加容易.


            Adapter

            "將一個類的接口轉換成客戶希望的另外一個接口.Adapter模式使原本由于接口不兼容而不能一起工作的類可以一起工作."

            1.例如抽象類有接口int foo(int a,int b,bool c),其派生類A中的foo函數已經由另外一個函數實現,但是函數foo2只需要兩個參數,則可以如下復用代碼.
            int foo(int a,int b,bool c)
            {
               return foo2(a,b);
            }

            2.如果虛基類Shape有多個派生類,如Point,Square,Circle等.但是其中一個派生類已有相似實現,如ShapeCircle,但是ShapeCircle的接口又與Shape不一致.則可在Circle中包含一個類型為ShapeCircle的數據成員,并在接口的實現中運用1,以此復用代碼.


            Strategy

            "定義一系列的算法,把它們一個個封裝起來,并且使它們可相互替換.Strategy模式使算法可獨立于使用它的客戶而變化."

            (話說,這句話真是看的人云里霧里的...)

            一個類A中,擁有許多的成員函數,這些函數都需要根據一些狀態進行不同操作.如果將A當作基類直接寫相應狀態的派生類時,隨著狀態的復雜程度增加,則會導致繼承層次過大,特化版本過多.
            Strategy模式則是將類A中的函數封裝成虛基類,然后通過繼承A中的類成員以應對不同的狀態.


            Bridge

            "將抽象與其實現解耦,使它們都可以獨立地變化."

            一個類A需要調用不同的實現做不同的事情,如果用繼承去解決(用某種實現實現某種事情則為1個派生類),隨著不同的實現(m)和不同的事情(n)的數量增長,會造成派生類數量的爆炸性增長(m*n).Bridge模式是把實現抽象,然后在A中持有實現的句柄,再通過動態創建做事情(m+n).


            Abstract Factor

            "為創建一組相關或相互依賴的對象提供一個接口,而且無需指定它們的具體類."

            @_@ 這個覺得定義的挺明確的,剛看完,還沒怎么思考過,有空再補寫...

            to be continue...

            posted on 2009-10-14 20:54 DJ 閱讀(308) 評論(0)  編輯 收藏 引用 所屬分類: 啃書筆記

            7777精品久久久大香线蕉| 久久久久亚洲Av无码专| 精品无码久久久久久午夜| 97久久精品国产精品青草| 亚洲国产精品久久电影欧美| 久久精品国产91久久综合麻豆自制 | 97久久超碰成人精品网站| 国产精品久久久久久搜索| 国产亚洲色婷婷久久99精品91| 日日狠狠久久偷偷色综合96蜜桃| 香蕉久久夜色精品升级完成| 午夜欧美精品久久久久久久| 久久精品国产秦先生| 污污内射久久一区二区欧美日韩| 久久亚洲AV成人出白浆无码国产| 日韩电影久久久被窝网| 久久久亚洲欧洲日产国码是AV | 亚洲狠狠久久综合一区77777| 亚洲国产日韩欧美久久| 久久久久国产一级毛片高清版| 久久精品国产亚洲AV不卡| 亚洲国产二区三区久久| 777午夜精品久久av蜜臀| 日韩欧美亚洲综合久久影院Ds | 久久久久久噜噜精品免费直播| 久久久精品人妻无码专区不卡 | 思思久久99热免费精品6| 久久精品国产秦先生| 国产精品免费福利久久| 久久AV无码精品人妻糸列| 久久精品国产男包| 久久精品国产AV一区二区三区| 久久精品无码一区二区三区免费| 国产91久久精品一区二区| 伊人久久大香线蕉综合Av| 国内精品欧美久久精品| 精品国产一区二区三区久久蜜臀| 久久不射电影网| 国内精品久久久久久久影视麻豆| 久久高潮一级毛片免费| 九九久久精品无码专区|