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

            jetty2k-kyj

            無名
            posts - 3, comments - 20, trackbacks - 0, articles - 0

            GOF模式之我見 之一

            Posted on 2010-03-09 16:31 鄭曉源 閱讀(1264) 評論(2)  編輯 收藏 引用

            感謝GOF
            感謝K_Eckel      frwei@whu.edu.cn
            感謝愛人
            感謝家人
            轉載請注明來源

            希望能和兄弟們交流     jetty     jetty2k_kyj@163.com

            **************************************************************

             架構設計,目前理解來看,就是對概念的 分級,分離/組合,通信
               分級: 比如 繼承,比如 大模塊下的小模塊
               分離: 比如 對象分類,組件分類
               組合: 比如 類對象的組合
               通信: 比如 通過接口,通過類WinMsg

             
             1. 創建型模式
             
               1.1 Factory Method(工廠方法)[一般對象創建]
                    1. 用類C1自身特色構造函數封裝對象的創建
                       創建的調用在抽象工廠類的子類的虛函數F1中
                       創建后,可添加初始化代碼于F1中,F1返回C1對象指針
                       C1對象指針可 工廠析構時自動[安全] 或 不用時手動[效率] 釋放
                    2. 擴展(模板類法)
                       將抽象工廠類的子類做成模板類
                       傳入Cn作為參數,就實現了編譯時類變化支持
                    3. 擴展(配置文件法)
                       可增加Key,ClassName對應的Xml配置文件
                       再由 m##n 宏 將ClassName轉成對應的標識符來調用
                       這樣,先將可能用到的Class都定義好,調用流程寫好
                       更改Xml配置文件,就實現了運行時類變化支持
                
               1.2 Abstract Factory(抽象廠工)[相關聯的一組對象創建]
                    1. 在Factory Method(工廠方法)的基礎上
                       在抽象工廠類中為每一組具有相同創建過程的對象
                       建立一個虛函數,其他類同Factory Method(工廠方法)
                    2. 如果虛函數不多,就只用一個抽象工廠的子類,
                       用函數名字劃分產品線(男鞋線/女鞋線)
                    3. 如果虛函數較多,可用多個抽象工廠的子類,
                       用類名(食品廠/鞋廠)劃分產品線,
                       相關聯的對象的創建就在一起了
                
               1.3 Singleton(單件)[保證僅有一個實例]
                    1. 私有化 類構造函數
                       只能通過靜態成員函數Instance來生成這個唯一對象
                       用靜態私有成員變量保存這個唯一實例對象的指針
                       用靜態公有函數GetInstance返回這個指針
                       注意在類析構時,SafeDel這個指針
                    2. 上面的具體工廠類,就應該是一個Singleton對象
                
               1.4 Builder(生成器)[相同構造算法得到不同的復雜對象](STL)
                    1. 分離 構造算法(穩定) 與 構造參數(不穩定)
                    2. 需要 算法函數隊列 迭代器 容器
                    3. 例如 STL中的算法 nth_element
              
               1.5 Prototype(原型)[自我復制]
                    1. 代碼
                        Prototype* ConcretePrototype::Clone() const
                        {
                            return new ConcretePrototype(*this); //拷貝構造函數
                        }
                    2. 注意 類成員為 指針或復雜對象 時,拷貝構造函數 的 深層拷貝   
              
              
             2. 結構型模式
             
               2.1 Bridge(橋接)[分離接口與實現]
                    1. 接口類A 為 實現類B 的父類
                    2. A類中有類B對象的指針,可用函數賦值
                    3. 從而使類A的接口功能完整化,且實現獨立


            未完,待續……

            Feedback

            # re: GOF模式之我見 之一  回復  更多評論   

            2010-03-10 12:52 by 劉暢
            贊,看郵件地址LZ好像是武漢大學的?

            # re: GOF模式之我見 之一  回復  更多評論   

            2010-03-19 02:05 by gbb21
            靠,下次記得先感謝國家!
            亚洲国产成人久久笫一页| 国产精品久久久久久久久免费| 国产精品伊人久久伊人电影 | 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 国产精品久久国产精麻豆99网站| 精品免费tv久久久久久久| 久久久久久极精品久久久| 亚洲中文字幕无码一久久区| 高清免费久久午夜精品| 亚洲中文字幕伊人久久无码| 精品久久久久久久无码| 久久亚洲色一区二区三区| 99久久久精品免费观看国产| 色综合久久天天综线观看| 久久天堂电影网| 色偷偷久久一区二区三区| 久久97久久97精品免视看| 久久精品中文騷妇女内射| 久久亚洲精品无码观看不卡| 久久99热国产这有精品| 欧美一区二区三区久久综合| 亚洲精品第一综合99久久| 久久精品国产亚洲AV嫖农村妇女| 久久久青草青青国产亚洲免观| 人妻少妇久久中文字幕| 午夜精品久久久久9999高清| 99久久精品免费看国产一区二区三区| 色综合久久久久综合体桃花网 | 日产精品99久久久久久| 亚洲美日韩Av中文字幕无码久久久妻妇| AV无码久久久久不卡蜜桃| 97精品依人久久久大香线蕉97 | 国产高潮国产高潮久久久91| 久久国产色AV免费观看| 久久人人爽人人爽人人片AV麻烦| 综合久久一区二区三区| 久久99精品久久久久久齐齐 | 91精品国产9l久久久久| 午夜精品久久久久久久| 久久九九精品99国产精品| 国内精品久久久久影院一蜜桃|