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

            積木

            No sub title

              C++博客 :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
              140 Posts :: 1 Stories :: 11 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(1)

            我參與的團(tuán)隊(duì)

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            設(shè)計(jì)模式學(xué)習(xí)總結(jié)之二

            三:Singleton模式(單實(shí)例模式)

             顧名思義,即單例模式。其主要思想就是在項(xiàng)目中,僅創(chuàng)建一個(gè)實(shí)例對(duì)象。該對(duì)象的抽象,除了通過指定的獲取實(shí)例接口外,再?zèng)]其他辦法可以初始化。
            此可以保證整個(gè)系統(tǒng)生命周期內(nèi),僅會(huì)有一個(gè)實(shí)例存在??梢韵胂笠幌?,它是可以與先前說的工廠模式或抽象工廠模式結(jié)合使用的。因?yàn)橐话銇碚f,工廠可能只會(huì)
            有一個(gè)(至少對(duì)某種邏輯處理來說是這樣的)。
             在C++中,實(shí)現(xiàn)單例模式,相對(duì)比較直觀及合理。將該實(shí)例定義成static成員即可。并提供獲取及釋放該成員的接口。而在delphi中,(就本來的了解來說)
            似乎并沒有直觀的靜態(tài)成員這一說法。但可以定義一個(gè)全局變量,并提供獲取與釋放變量的接口來模擬。(但,畢竟沒辦法同類型的實(shí)例被創(chuàng)建出來,所以最好要加
            詳細(xì)注釋說明。告知其他組員,此為單實(shí)例)

             參考的c++實(shí)現(xiàn):
             class CA
             {
             private:
              CA(){}
             private:
              static CA* m_pAObj;
             public:
              virtual ~CA(){}
              static CA* GetAObj(void)
              {
               if (m_pAObj == NULL)
                m_pAObj = new CA();
               return m_pAObj;
              }
              static void SafeReleaseAObj(void)
              {
               if (m_pAObj != NULL)
                delete m_pAObj;
               m_pAObj = NULL;
              }
             };
             static CA* CA::m_pAObj = NULL;

             參考的Delphi實(shí)現(xiàn):
             unit xxx
             interface
             uses
               xxx,...,yyy;
             type
               TMyClass = class
               //xxxx
               end;
             var
               gAObj: TMyClass;//此為全局的單實(shí)例對(duì)象。
             function GetAObj: TMyClass;
             procedure SafeReleaseAObj;
             implemention//這個(gè)單詞忘了是不是這么寫。反應(yīng)是實(shí)現(xiàn)的那個(gè)單詞。。
             procedure SafeReleaseAObj;
             begin
               if Assigned(gAObj) then
                 FreeAndNil(gAObj);
             end;
             funciton GetAObj: TMyClass;
             begin
               if not Assigned(gAObj) then
                 gAObj = TMyClass.Create;
               Result := gAObj;
             end;

             //說明:以上僅是臨時(shí)寫的,并未在程序中編譯測試。但思路肯定不會(huì)錯(cuò)。可供參考用。
             
            四:Builder模式(即:構(gòu)建模式)

             往往在實(shí)際項(xiàng)目的開發(fā)過程中會(huì)發(fā)現(xiàn),某些模塊的功能過于復(fù)雜。此時(shí),我們自然就會(huì)想到將其進(jìn)行進(jìn)一步的劃分。如:細(xì)分成DA,DB,...,DN。然后由該模塊的某個(gè)管理角色進(jìn)行協(xié)調(diào)運(yùn)作。
            這樣,Builder模式將可用在此設(shè)計(jì)上。其思想,就是將復(fù)雜問題進(jìn)一步細(xì)化。

            posted on 2011-05-15 15:31 Jacc.Kim 閱讀(306) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 設(shè)計(jì)模式
            国产69精品久久久久777| 亚洲欧美日韩精品久久| 日韩久久久久中文字幕人妻| 99久久国产综合精品五月天喷水| 青青草国产精品久久久久| 久久精品国产99久久久香蕉| 色婷婷狠狠久久综合五月| 久久亚洲精品成人AV| 久久久久无码国产精品不卡| 亚洲中文久久精品无码ww16| 日韩一区二区久久久久久| 久久妇女高潮几次MBA| 久久青草国产精品一区| 国产色综合久久无码有码| 久久夜色精品国产亚洲| 午夜精品久久久久久久| 精品水蜜桃久久久久久久| 国产亚洲美女精品久久久2020| 国产精品伊人久久伊人电影| 久久婷婷五月综合97色一本一本 | 理论片午午伦夜理片久久| 蜜桃麻豆WWW久久囤产精品| 一本大道加勒比久久综合| 一本久久知道综合久久| 亚洲国产精品成人AV无码久久综合影院| 精品国产乱码久久久久久人妻| 欧美激情精品久久久久久| 国产午夜精品理论片久久 | 久久精品国产99久久久香蕉| 久久夜色精品国产欧美乱| 一本色道久久99一综合| 国产激情久久久久久熟女老人 | 精品久久久久久无码专区不卡 | 亚洲伊人久久大香线蕉苏妲己| 久久久久久人妻无码| 亚洲AV日韩精品久久久久久久| 中文精品久久久久人妻不卡| 久久精品国产亚洲AV久| 久久人人爽人人爽人人片AV不| 久久99热这里只频精品6| 久久99热这里只有精品国产|