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

            C++研究

            C++細節深度探索及軟件工程

              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
              37 隨筆 :: 0 文章 :: 74 評論 :: 0 Trackbacks

             

            The Gof has 23 design patterns , but in most of  the design books , the E.G is written in Java , So  from now on , I will write about 23 articles to implement them using C++ , the design pattern itself is discussible , so welcome everyone to give his excelent idea to me , My QQ: 286259397 And My MSN : cxl82116@msn.com.
            Welcome every one to express his ideas!

             


            This is the First Arcticle: ABSTRACT FACTORY

            Here the theory goes:

            /*The theory basis :
              While using abstract factory , the  situation will be almost like this:
              we can create a real product from the abstract product , there are many series of product ,
              and the all have the similar property and operations , the operations can be different inner,
              but all the same interface outer;
              What's need?
              An abstract factory , and many real factory derived from this factory create real products
              An abstract product , any many real product derived from this proudct ;
              An abstract Interface , and many real Interface  that realize the interface
            */

            Here the code goes:

             

              1/********************************************************************
              2created: 2007/04/18
              3created: 18:4:2007   0:42
              4filename:  C:\testvc6\TestStll\TestStll.cpp
              5file path: C:\testvc6\TestStll
              6file base: TestStll
              7file ext: cpp
              8author:  Chang xinglong(King.C)
              9
             10  purpose: Abstract Factory
             11*********************************************************************/

             12
             13
             14#include <iostream>
             15using namespace std;
             16
             17//the abstract implementation
             18class AbsProductImp 
             19{
             20public:
             21    virtual void DrawProductShape()=0;
             22}
            ;
             23//the abstract factory
             24class AbsFactory
             25{
             26public:
             27    virtual AbsProductImp * CreateAProductImp()=0;  //Create a real implement
             28}
            ;
             29
             30//the abstract product 
             31class AbsProduct
             32{
             33public:
             34    //virtual void DrawProductShape();
             35protected:
             36    AbsProductImp * _imp;  //implement pointer , it's decide which implement be execute
             37    AbsFactory * _Fac;// this pointer will point to the real factory 
             38    
             39}
            ;
             40// Derived begain [4/18/2007 Chang Xinglong(King.C)]
             41
             42class AProductImp :public AbsProductImp //the real a product
             43{
             44public:
             45    void DrawProductShape()
             46    {
             47        cout<<"A product is describing itselfA is implement complete "<<endl;
             48    }

             49    
             50}
            ;
             51class BProductImp :public AbsProductImp  //the real a product
             52{
             53public:
             54    virtual void DrawProductShape()
             55    {
             56        cout<<"B product is describing itselfB is implement complete "<<endl;
             57    }

             58    
             59}
            ;
             60// Derived the Factory [4/18/2007 Chang Xinglong(King.C)]
             61class AFactory :public AbsFactory//The factory that create A
             62{
             63public:
             64    virtual AbsProductImp * CreateAProductImp()
             65    {
             66        return new AProductImp;
             67    }

             68    
             69}
            ;
             70
             71class BFactory : public AbsFactory
             72{
             73public:
             74    virtual AbsProductImp * CreateAProductImp()
             75    {
             76        return new BProductImp;
             77    }

             78    
             79}
            ;
             80
             81class AProduct :public AbsProduct
             82{
             83public:
             84    AProduct()
             85    {
             86        _Fac=new AFactory; // specific the AFactory to create A
             87        _imp=_Fac->CreateAProductImp(); // polymorphism , select the product implement
             88        _imp->DrawProductShape(); //construct it self
             89    }

             90}
            ;
             91
             92class BProduct :public AbsProduct
             93{
             94public:
             95    BProduct()
             96    {
             97        _Fac=new BFactory; // specific the BFactory to create B
             98        _imp=_Fac->CreateAProductImp(); // polymorphism , select the product implement
             99        _imp->DrawProductShape(); //construct it self
            100    }

            101}
            ;
            102// Derived the products [4/18/2007 Administrator]
            103int main(int argc, char* argv[])
            104{
            105    AProduct _a;  //Create An AProduct
            106    BProduct _b;  //Create A  BProduct
            107    return 1;
            108}

            109
            110
            111
            112
            posted on 2007-04-18 02:26 常興龍 閱讀(984) 評論(2)  編輯 收藏 引用 所屬分類: Design Patterns & Engeering

            評論

            # re: Implement "GOF's Abstract Factory" Using C++(Series of Gof patterns using C++ 1st article) 2007-04-18 11:25 abware
            GOF里的代碼就是C++的啊。  回復  更多評論
              

            # re: Implement "GOF's Abstract Factory" Using C++(Series of Gof patterns using C++ 1st article) 2007-04-18 17:38 夢在天涯
            雖然gof里有C++的實現,但是希望堅持寫下去,最好用平常我們生活中的實例,更淺顯易懂!
            可以加入msn C++高級編程群:group2041@xiaoi.com  回復  更多評論
              

            > hi的博客
            性高湖久久久久久久久AAAAA| 亚洲午夜久久久久久久久久| 伊人久久久AV老熟妇色| 久久国产高清一区二区三区| 久久线看观看精品香蕉国产| 国产精品久久久久一区二区三区| 精品人妻伦九区久久AAA片69| 久久亚洲AV成人无码软件| 一级女性全黄久久生活片免费| 久久综合亚洲色HEZYO国产| 青青热久久国产久精品 | 狠狠综合久久综合88亚洲| 97久久国产露脸精品国产| 人妻少妇久久中文字幕| 97精品伊人久久大香线蕉app| 天天综合久久久网| 香蕉久久久久久狠狠色| 久久亚洲精品成人无码网站| 久久久久久毛片免费播放| 免费观看久久精彩视频| 亚洲国产成人久久精品99| 伊人久久大香线蕉综合Av| 久久精品国产91久久麻豆自制 | 蜜桃麻豆www久久国产精品| 久久涩综合| 成人综合伊人五月婷久久| 99久久精品国产毛片| 香蕉久久夜色精品国产尤物| 波多野结衣中文字幕久久| 欧美亚洲另类久久综合婷婷| 亚洲AV无码一区东京热久久| 18岁日韩内射颜射午夜久久成人| 2021国内久久精品| 国产V综合V亚洲欧美久久| 亚洲v国产v天堂a无码久久| 丁香狠狠色婷婷久久综合| 久久亚洲AV无码西西人体| 精品乱码久久久久久久| 久久夜色撩人精品国产| 久久se精品一区二区| 亚洲AV日韩精品久久久久|