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

            適配器模式(Adapter):將一個類的接口轉(zhuǎn)換成客戶希望的另外一個接口。Adapter 模式使得原本由于接口不兼容而不能在一起工作的那些類可以一起工作。

            結(jié)構(gòu)型
            ·類
            ·對象

            UML 類圖:


            代碼實現(xiàn) C++:
              1 #include <iostream>
              2 #include <string>
              3 using namespace std;
              4 
              5 class Player
              6 {
              7 protected:
              8     string name;
              9 public:
             10     Player(const string& s = "") : name(s) {}
             11     virtual void Attack()  = 0;
             12     virtual void Defense() = 0;
             13 };
             14 
             15 class Forwards : public Player
             16 {
             17 public:
             18     Forwards(const string& s = "") : Player(s) {}
             19     virtual void Attack()
             20     {
             21         cout << "前鋒 " << name << " 進(jìn)攻!" << endl;
             22     }
             23     virtual void Defense()
             24     {
             25         cout << "前鋒 " << name << " 防守!" << endl;
             26     }
             27 };
             28 
             29 class Center : public Player
             30 {
             31 public:
             32     Center(const string& s = "") : Player(s) {}
             33     virtual void Attack()
             34     {
             35         cout << "中鋒 " << name << " 進(jìn)攻!" << endl;
             36     }
             37     virtual void Defense()
             38     {
             39         cout << "中鋒 " << name << " 防守!" << endl;
             40     }
             41 };
             42 
             43 class Guards : public Player
             44 {
             45 public:
             46     Guards(const string& s) : Player(s) {}
             47     virtual void Attack()
             48     {
             49         cout << "后衛(wèi) " << name << " 進(jìn)攻!" << endl;
             50     }
             51     virtual void Defense()
             52     {
             53         cout << "后衛(wèi) " << name << " 防守!" << endl;
             54     }
             55 };
             56 
             57 class ForeignCenters
             58 {
             59 private:
             60     string name;
             61 public:
             62     ForeignCenters(const string& s = "") : name(s) {}
             63     void ForeignAttack()
             64     {
             65         cout << "外籍中鋒 " << name << " 進(jìn)攻!" << endl;
             66     }
             67     void ForeignDefense()
             68     {
             69         cout << "外籍中鋒 " << name << " 防守!" << endl;
             70     }
             71 };
             72 
             73 class Translators : public Player
             74 {
             75 private:
             76     ForeignCenters* fc;
             77 public:
             78     Translators(const string& s = ""const string& f = "") : Player(s), fc(new ForeignCenters(f)) {}
             79     ~Translators()
             80     {
             81         delete fc;
             82     }
             83     virtual void Attack()
             84     {
             85         fc->ForeignAttack();
             86     }
             87     virtual void Defense()
             88     {
             89         fc->ForeignDefense();
             90     }
             91 };
             92 
             93 int main()
             94 {
             95     Player* b = new Forwards("巴蒂爾");
             96     b->Attack();
             97     b->Defense();
             98 
             99     Player* m = new Guards("麥克格雷迪");
            100     m->Attack();
            101     m->Defense();
            102 
            103     Player* y = new Translators("翻譯者""姚明");
            104     y->Attack();
            105     y->Defense();
            106 
            107     return 0;
            108 }
            posted on 2011-04-28 14:31 unixfy 閱讀(121) 評論(0)  編輯 收藏 引用
            国产精品九九久久免费视频| 伊人久久大香线蕉av不变影院| 久久久久久国产精品美女| 日本WV一本一道久久香蕉| 亚洲AV成人无码久久精品老人| 久久久婷婷五月亚洲97号色 | 97精品国产97久久久久久免费| 久久亚洲国产中v天仙www| 日本精品一区二区久久久| 亚洲中文字幕无码久久综合网| 99久久综合狠狠综合久久止| 久久精品18| 91精品国产综合久久婷婷 | 久久亚洲国产成人影院网站| 久久人人爽人人爽人人片AV麻烦| 国内精品伊人久久久久av一坑| 国产精品久久久99| 少妇久久久久久久久久| 久久久久久国产精品美女| 精品蜜臀久久久久99网站| 伊人色综合久久天天人守人婷| 久久国产精品99久久久久久老狼 | 无码国内精品久久人妻蜜桃 | 国产精品成人精品久久久| 亚洲AV无码久久精品蜜桃| 久久久久国产日韩精品网站 | 久久人人爽人人爽人人片AV麻豆| 亚洲国产美女精品久久久久∴| 国产免费久久久久久无码| 久久国产精品久久国产精品| 久久精品国产2020| 国内精品综合久久久40p| 久久伊人中文无码| 久久无码一区二区三区少妇| 精品久久久久久久| 国产成人久久精品一区二区三区 | 久久精品成人免费网站| 中文字幕乱码久久午夜| 久久亚洲国产成人影院网站| 久久久久噜噜噜亚洲熟女综合 | 无码人妻久久久一区二区三区|