• <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>
            posts - 183,  comments - 10,  trackbacks - 0

            來(lái)自于《大話設(shè)計(jì)模式》
            橋接模式(Bridge):將抽象部分與它的實(shí)現(xiàn)部分分離,使它們都可以獨(dú)立地變化。

            結(jié)構(gòu)型

            UML 類(lèi)圖:



            代碼實(shí)現(xiàn) C++:
             1 #include <iostream>
             2 using namespace std;
             3 
             4 class HandsetSoft
             5 {
             6 public:
             7     virtual void Run() = 0;
             8 };
             9 
            10 class HandsetGame : public HandsetSoft
            11 {
            12 public:
            13     virtual void Run()
            14     {
            15         cout << "運(yùn)行手機(jī)游戲!" << endl;
            16     }
            17 };
            18 
            19 class HandsetAddressList : public HandsetSoft
            20 {
            21 public:
            22     virtual void Run()
            23     {
            24         cout << "運(yùn)行手機(jī)通訊錄!" << endl;
            25     }
            26 };
            27 
            28 class HandsetBrand
            29 {
            30 protected:
            31     HandsetSoft* hs;
            32 public:
            33     HandsetBrand() : hs(0) {}
            34     virtual ~HandsetBrand()
            35     {
            36         delete hs;
            37     }
            38     void SetHandsetSoft(HandsetSoft* soft)
            39     {
            40         delete hs;
            41         hs = soft;
            42     }
            43     virtual void Run() = 0;
            44 };
            45 
            46 class HandsetBrandN : public HandsetBrand
            47 {
            48 public:
            49     virtual void Run()
            50     {
            51         hs->Run();
            52     }
            53 };
            54 
            55 class HandsetBrandM : public HandsetBrand
            56 {
            57 public:
            58     virtual void Run()
            59     {
            60         hs->Run();
            61     }
            62 };
            63 
            64 int main()
            65 {
            66     HandsetBrand* ab = new HandsetBrandN;
            67 
            68     ab->SetHandsetSoft(new HandsetGame);
            69     ab->Run();
            70 
            71     ab->SetHandsetSoft(new HandsetAddressList);
            72     ab->Run();
            73 
            74     delete ab;
            75 
            76     ab = new HandsetBrandM;
            77 
            78     ab->SetHandsetSoft(new HandsetGame);
            79     ab->Run();
            80 
            81     ab->SetHandsetSoft(new HandsetAddressList);
            82     ab->Run();
            83 
            84     delete ab;
            85 
            86     return 0;
            87 }
            posted on 2011-04-29 20:42 unixfy 閱讀(322) 評(píng)論(0)  編輯 收藏 引用

            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            精品一区二区久久| 国产91色综合久久免费| 少妇久久久久久被弄到高潮| 久久涩综合| 无码超乳爆乳中文字幕久久| 无码8090精品久久一区| 久久久久久精品免费免费自慰| 国内精品久久国产大陆| 亚洲国产精品成人久久| 久久免费精品视频| 99热成人精品免费久久| 亚洲Av无码国产情品久久| 91麻豆国产精品91久久久| 精品久久香蕉国产线看观看亚洲 | 婷婷综合久久中文字幕| 亚洲国产精品综合久久一线| 国内精品伊人久久久久| 中文精品99久久国产| 韩国三级中文字幕hd久久精品 | 99久久精品国产一区二区三区 | 亚洲精品乱码久久久久久中文字幕 | 久久久久一本毛久久久| 久久人人爽爽爽人久久久| 波多野结衣久久| 亚洲а∨天堂久久精品| 一级A毛片免费观看久久精品| 国产成人久久777777| 国产L精品国产亚洲区久久| 国产AⅤ精品一区二区三区久久 | 91麻豆国产精品91久久久| 性高湖久久久久久久久AAAAA| 性做久久久久久久久久久| 久久综合鬼色88久久精品综合自在自线噜噜 | 久久伊人色| 人妻无码αv中文字幕久久琪琪布 人妻无码久久一区二区三区免费 人妻无码中文久久久久专区 | 久久精品无码一区二区app| 午夜精品久久久内射近拍高清 | 青青国产成人久久91网| 国产福利电影一区二区三区久久老子无码午夜伦不| 久久亚洲国产成人影院网站| 久久久国产精品亚洲一区|