• <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>
            句柄類是存儲(chǔ)和管理基類指針的一個(gè)類
            需要句柄類的背景:
            1)在對(duì)安全要求很高的領(lǐng)域,即使核心實(shí)現(xiàn)已經(jīng)封閉在庫中不可見,但頭文件中變量定義仍可能曝露一些內(nèi)部信息
            2)在設(shè)計(jì)初期、實(shí)現(xiàn)部分會(huì)經(jīng)常變動(dòng),甚至頭文件中變量定義也需要經(jīng)常變動(dòng),因此在重編譯的時(shí)候頭文件也需要編譯,
            有時(shí)候?qū)е戮幾g時(shí)間過長(zhǎng)。
            句柄類就是為了解決這類問題
            // Handle.h
            class Implement; //這里是對(duì)真正實(shí)現(xiàn)功能的類的聲明

            class ImplementHandle //這是Implement類的句柄類
            {
            public:
            ImplementHandle():lpImplementInstance(NULL){lpImplementInstance = new Implement;}
            ~ImplementHandle(){ delete lpImplementInstance ;}
            public:
            // Interface_FOO() 是句柄類提供的接口,它的真正實(shí)現(xiàn)是在Implement類里面,而這個(gè)僅僅是接口"代理"
            RE_TYPE Interface_FOO()
            {
            return lpImplementInstance->FOO
            _
            Implementation(); //句柄代理調(diào)用實(shí)現(xiàn)真正的FOO接口
            }
            //還有其他的接口也一樣,均是用句柄類代理接口
            //....
            private:
            Implement * lpImplementInstance; //這個(gè)是句柄類唯一的數(shù)據(jù)成員(當(dāng)然,并不一定),可以被句柄類很好地自動(dòng)管理
            };




              被封裝在句柄類里面的真正實(shí)現(xiàn)(class Implement)將與用戶隔離開來,就是說,就算以后Implement 類的實(shí)現(xiàn)有所改變,
            只要它提供的接口不變,那么它的句柄類就不會(huì)改變,而包含句柄類的用戶,也不用做任何相應(yīng)的改變(所有包含 “Handle.h”的模塊甚至不用從新編譯就可以正常更新至最新的Implement實(shí)現(xiàn))。

            例如
            #include "Handle.h"
            Imlementhandle testhandle;
            testhandle->Interface_Foo();//調(diào)用接口即可。
            如果改動(dòng)了Implent類的方法

              于此相反,如果直接用class Implement 的定義,那么只要Implement類的定義有所改變(不管是public 還是private 成員
            的更新),那么所有包含它的頭文件的模塊都要從新編譯一次。

            這其實(shí)就是接口與實(shí)現(xiàn)的分離,


            Posted on 2008-10-07 16:13 micheal's tech 閱讀(1171) 評(píng)論(0)  編輯 收藏 引用 所屬分類: C++ programme language設(shè)計(jì)模式
            亚洲国产精品无码久久九九| 久久狠狠高潮亚洲精品 | 亚洲国产精品无码成人片久久| 无码人妻久久一区二区三区蜜桃| 日韩十八禁一区二区久久| 日产精品久久久久久久| 久久妇女高潮几次MBA| 久久99国产综合精品免费| 久久电影网一区| 久久99热这里只有精品66| 天天爽天天狠久久久综合麻豆| 久久99国产精品久久久| 人人狠狠综合久久亚洲高清| 精品人妻久久久久久888| 久久综合久久伊人| 国产精品天天影视久久综合网| 久久乐国产精品亚洲综合 | 久久免费美女视频| 99久久这里只精品国产免费| 久久精品国产精品青草| 国产亚洲精品久久久久秋霞| 青青草原1769久久免费播放| 久久99精品国产麻豆宅宅| 精品久久久久中文字幕一区| 国产高潮国产高潮久久久| 伊人久久五月天| 久久影视国产亚洲| 99久久婷婷国产综合精品草原| 精品综合久久久久久888蜜芽| 久久久久久亚洲精品无码| 91精品国产高清久久久久久国产嫩草| 久久狠狠爱亚洲综合影院| 人妻无码久久精品| 久久福利资源国产精品999| 国产精品免费看久久久香蕉| 国产一区二区三区久久| 国产精品久久一区二区三区| 精品久久久噜噜噜久久久| 91久久婷婷国产综合精品青草 | 国产韩国精品一区二区三区久久| 婷婷久久久亚洲欧洲日产国码AV|