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

            CG@CPPBLOG

            /*=========================================*/
            隨筆 - 76, 文章 - 39, 評論 - 137, 引用 - 0
            數據加載中……

            《C++設計新思維》讀書筆記(16)


            3. Typelists

            Typelists是一個用來操作一大群型別的C++工具。就像lists對數值提供各種基本操作一樣,typelists對型別也提供相同操作。

            有些設計模式具體指定并操作一群型別,其中也許有繼承關系(但也許沒有)。顯著的例子是abstract factory和visitor。如果以傳統編程技術來操作一大群型別,將是全然的重復工作。如此重復會導致隱微的代碼膨脹。多數人不會想到其實它可以比現在更好。Typelists帶給你一種能力,可以將經常性的宏工作自動化。Typelists將來自外星球的強大威力帶到C++中,讓它得以支持新而有趣的一些手法。

            3.1 Typelists的必要性

            有時候你必須針對某些型別重復撰寫相同代碼,而templates無法幫上忙。假如有一個abstract factory,像這樣:

            1 class WidgetFactory
            2 {
            3 public:
            4     virtual Window* CreateWindow() = 0;
            5     virtual Button* CreateButton() = 0;
            6     virtual ScrollBar* CreateScrollBar() = 0;
            7 };


            如果你想將Abstract Factory概念泛化,不只生成Window、Button、ScrollBar,而是任意型別。怎么辦?

            如果你不試圖泛化基本概念,就不太有機會泛化這些概念的具象實體。雖然抽象基類很簡單,但是你會陷入無窮無盡的派生類生成器中。

            我們希望能夠這樣去使用一個abstract factory:
            1 
            2 template <class T>
            3 T* MakeRedWidget(WidgetFactory& factory)
            4 {
            5     T* pW = factory.Create<T>();
            6     pW -> SetColor(RED);
            7     return pW;
            8 }


            實際這是不可能的,如果Create不是虛函數,那么你就陷入了長長的Switch...case...之中,如果它是虛函數,那么虛函數不能是模板。
            Typelists將使Abstract Factories泛化成真,并帶來更多其它利益。

            posted on 2007-12-29 22:05 cuigang 閱讀(369) 評論(0)  編輯 收藏 引用 所屬分類: 《C++設計新思維》讀書筆記

            伊人久久国产免费观看视频| 国产亚洲精品自在久久| 久久久综合香蕉尹人综合网| 久久一本综合| 久久午夜羞羞影院免费观看| 久久99精品久久久久久动态图| 国产精品无码久久综合网| 91麻豆国产精品91久久久| 国产精品久久网| 亚洲成av人片不卡无码久久| 久久精品九九亚洲精品| 久久久久亚洲精品无码网址| 国产亚洲精久久久久久无码AV| 国产激情久久久久影院老熟女免费 | 91精品国产色综合久久| 亚洲人成精品久久久久| 久久综合日本熟妇| 久久96国产精品久久久| 久久精品国产一区二区| 亚洲欧美伊人久久综合一区二区| 国产精品99久久久久久猫咪| 天天爽天天狠久久久综合麻豆| 久久中文字幕无码专区| 国产成人精品久久综合| 精品国产91久久久久久久 | 国産精品久久久久久久| 国产婷婷成人久久Av免费高清| 久久久久精品国产亚洲AV无码| 观看 国产综合久久久久鬼色 欧美 亚洲 一区二区 | 精品免费久久久久久久| 亚洲欧洲中文日韩久久AV乱码| 久久久91精品国产一区二区三区| 日韩人妻无码精品久久久不卡| 亚洲国产精品一区二区三区久久| 国产巨作麻豆欧美亚洲综合久久 | 亚洲欧洲精品成人久久曰影片| 日韩精品久久久久久| 成人午夜精品久久久久久久小说 | 一本色道久久88精品综合| 亚洲日本va午夜中文字幕久久| 无码人妻少妇久久中文字幕|