• <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 Third Arcticle: Bridge PATTERN

            T
            he Bridge pattern separate the impelment part  and the abstract part , so that they can variant each other



                                             3.1          Bridge -Pattern  UML Diagram
            Referring the UML , The C# Codes goes Here:

             1namespace BridgeDesignPattern
             2{
             3    abstract class TSquare
             4    {
             5        public abstract void OnKey();
             6        public abstract void Conflict();
             7        public abstract void Glitter();
             8    }
            ;
             9
            10    class TSquareHole : TSquare
            11    {
            12        private TSquareImp _imp;
            13        public TSquareHole(TSquareImp _imp)
            14        {
            15            this._imp = _imp;
            16        }

            17        public override void OnKey()
            18        {
            19            _imp.OnKey();
            20        }

            21        public  override void  Conflict()
            22        {
            23            _imp.Conflict();
            24        }

            25        public override void Glitter()
            26        {
            27            _imp.Glitter();
            28        }

            29    }
            ;
            30
            31    abstract class TSquareImp
            32    {
            33        public abstract void OnKey();
            34        public abstract void Conflict();
            35        public abstract void Glitter();
            36
            37    }
            ;
            38    class TPCSquareHoleImp : TSquareImp
            39    {
            40        public override void OnKey()
            41        {
            42            Console.WriteLine("TPCSquareHoleImp On key");
            43
            44        }

            45        public override void Conflict()
            46        {
            47            Console.WriteLine("TPCSquareHoleImp Conflict");
            48        }

            49        public override void Glitter()
            50        {
            51            Console.WriteLine("TPCSquareHoleImp Glitter");
            52        }

            53    }
            ;
            54    class TMobileSquareHoleImp:TSquareImp
            55    {
            56            public override void OnKey()
            57            {
            58                Console.WriteLine("TMobileSquareHoleImp On key");
            59
            60            }

            61            public override void Conflict()
            62            {
            63                Console.WriteLine("TMobileSquareHoleImp Conflict");
            64            }

            65            public override void Glitter()
            66            {
            67                Console.WriteLine("TMobileSquareHoleImp Glitter");
            68            }

            69    }
            ;
                        

             static void Main(string[] args)
                       
            {
                              BridgeDesignPattern.TMobileSquareHoleImp _imp 
            = new BridgeDesignPattern.TMobileSquareHoleImp();
                              BridgeDesignPattern.TSquareHole _hole 
            = new BridgeDesignPattern.TSquareHole(_imp);
                              _hole.OnKey();

                           Console.Read();
                    }



            71 }


            And there is the C++ Code:

             1/********************************************************************
             2    created:    2007/04/24
             3    created:    24:4:2007   2:34
             4    filename:     C:\TESTVC6\TESTSS.CPP
             5    file path:    C:\TESTVC6
             6    file base:    TESTSS
             7    file ext:    CPP
             8    author:        常興龍(King.C)
             9    
            10    purpose:    橋模式
            11*********************************************************************/

            12
            13#include <iostream>
            14#include <vector>
            15
            16using namespace std;
            17class T
            18{
            19public:
            20    virtual void onKey()=0;
            21}
            ;
            22class TImp
            23{
            24public:
            25    virtual void OnKeyImp()=0;
            26}
            ;
            27class TT:public T
            28{
            29public:
            30    TT(TImp *_imp)
            31    {
            32        this->_imp=_imp;
            33    }

            34    void onKey()
            35    {
            36        _imp->OnKeyImp();
            37    }

            38private:
            39  TImp * _imp;
            40}
            ;
            41class T40Imp:public TImp
            42{
            43public:
            44    void OnKeyImp()
            45    {
            46        cout<<"t40 imp"<<endl;
            47    }

            48}
            ;
            49class T50Imp:public TImp
            50{
            51public:
            52    void OnKeyImp()
            53    {
            54        cout<<"t50 imp"<<endl;
            55    }

            56}
            ;
            57void main()
            58{
            59    TImp *_imp=new T40Imp();
            60
            61    TT _tt(_imp);
            62    TImp *_imp2=new T50Imp();
            63    TT _tt2(_imp2);
            64    _tt2.onKey();
            65    _tt.onKey();
            66    
            67    return;
            68}
            posted on 2007-04-24 02:38 常興龍 閱讀(971) 評論(0)  編輯 收藏 引用 所屬分類: Design Patterns & Engeering
            > hi的博客
            精品免费久久久久国产一区 | 久久国产精品视频| 久久亚洲美女精品国产精品| 久久中文字幕视频、最近更新 | 国产福利电影一区二区三区,免费久久久久久久精 | 久久激情亚洲精品无码?V| 久久精品免费观看| 久久青青草原国产精品免费| 国产精品久久午夜夜伦鲁鲁| 国产亚洲色婷婷久久99精品| www久久久天天com| 国内精品久久国产大陆| 久久亚洲欧美日本精品| 品成人欧美大片久久国产欧美...| 国产精品99久久久久久猫咪| 国产激情久久久久影院小草 | 伊人久久综合成人网| 久久国产劲爆AV内射—百度| 无码AV中文字幕久久专区| 久久久久国产精品熟女影院| 久久九九亚洲精品| 久久精品国产一区二区| 色播久久人人爽人人爽人人片aV| 久久SE精品一区二区| 国产午夜精品理论片久久影视| 国内精品久久久久久久久 | 三级片免费观看久久| 久久精品国产日本波多野结衣| 99国产欧美久久久精品蜜芽 | 国产综合成人久久大片91| 一本一道久久精品综合| 久久精品亚洲欧美日韩久久| 亚洲伊人久久成综合人影院 | 久久精品国产一区二区三区| 久久无码AV中文出轨人妻| 人妻精品久久久久中文字幕一冢本| 久久精品国产亚洲欧美| 欧美日韩久久中文字幕| 久久久久综合网久久| 精品久久久久久国产| 久久93精品国产91久久综合|