• <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++細節(jié)深度探索及軟件工程

              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              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 常興龍 閱讀(977) 評論(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++的實現(xiàn),但是希望堅持寫下去,最好用平常我們生活中的實例,更淺顯易懂!
            可以加入msn C++高級編程群:group2041@xiaoi.com  回復  更多評論
              

            > hi的博客
            日日躁夜夜躁狠狠久久AV| 99久久婷婷国产综合精品草原| 精品久久久久久国产潘金莲 | 狠狠久久亚洲欧美专区| 亚洲午夜久久久久久久久久| 一级a性色生活片久久无| 天堂无码久久综合东京热| 亚洲美日韩Av中文字幕无码久久久妻妇| 国产精品成人久久久久三级午夜电影| 久久久久久亚洲精品成人 | 四虎久久影院| 无码人妻久久一区二区三区蜜桃| 日韩欧美亚洲综合久久影院Ds| 无码任你躁久久久久久久| 2021最新久久久视精品爱 | 久久精品中文字幕有码| 国产午夜福利精品久久| 欧美精品福利视频一区二区三区久久久精品 | 亚洲综合日韩久久成人AV| 亚洲精品乱码久久久久久蜜桃不卡| 国产精品99久久久精品无码 | 久久国产亚洲高清观看| 久久久久夜夜夜精品国产| 国产精品免费久久久久影院| 久久国产免费直播| 2021国内久久精品| 狠狠干狠狠久久| 日韩中文久久| 久久久久久久99精品免费观看| 日本道色综合久久影院| 久久影院久久香蕉国产线看观看| 精品久久久一二三区| 2020久久精品国产免费| 少妇被又大又粗又爽毛片久久黑人| 久久精品免费全国观看国产| 麻豆AV一区二区三区久久| 国产精品激情综合久久| 久久影院综合精品| 久久人人爽人爽人人爽av| 国产三级久久久精品麻豆三级 | 国产精品久久一区二区三区|