青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Benjamin

靜以修身,儉以養德,非澹薄無以明志,非寧靜無以致遠。
隨筆 - 398, 文章 - 0, 評論 - 196, 引用 - 0
數據加載中……

設計模式之Proxy模式和State模式

Proxy模式和State模式,都是提供一個Srurogate代理類,代碼只與代理類打交道,實際工作的類隱藏在代理類的后面。調用代理類中的一個方法時,僅僅是調用實現類中相應的方法。
基本思想:Surrogate代理類派生自一個基類,實現類和代理類一樣派生自相同的基類。
Proxy模式和State模式區別:結構上,Proxy模式只有一個實現類,State模式有多個;應用上,Proxy控制實現類的訪問,State模式動態改變實現類。

Proxy模式的示例代碼:
#include <iostream>
using namespace std;

class ProxyBase {
public:
  virtual void f() = 0;
  virtual void g() = 0;
  virtual void h() = 0;
  virtual ~ProxyBase() {}
};

class Implementation : public ProxyBase {
public:
  void f() { cout << "Implementation.f()" << endl; }
  void g() { cout << "Implementation.g()" << endl; }
  void h() { cout << "Implementation.h()" << endl; }
};

class Proxy : public ProxyBase {
  ProxyBase* implementation;
public:
  Proxy() { implementation = new Implementation(); }
  ~Proxy() { delete implementation; }
  // Forward calls to the implementation:
  void f() { implementation->f(); }
  void g() { implementation->g(); }
  void h() { implementation->h(); }
};

int main()  {
  Proxy p;
  p.f();
  p.g();
  p.h();
}
在某些情況下,Implementtation并不需要和類Proxy有相同的接口,這意味著Proxy類可以任意關聯Implementation類并將函數調用提交給它。使用共同接口的好處:可以把代理的替代物放到客戶代碼中,另外通過共同的接口,Iplementation被迫實現Proxy所需要的方法。代理模式用途:
Remote Proxy:遠程代理,為在不同的地址空間的對象提供代理,通過遠程代理對象實現。
Virtual Proxy:虛擬代理,即lazy initialization;
Protection Proxy:保護代理,如果不想客戶程序員擁有被代理對象的所有訪問權限時使用。
Smart Proxy:智能保護,renference counting引用計數就是一個離子,更簡單的是對特定函數進行引用計數。

State模式:產生一個可以改變其類的對象,它在所有的函數都有條件代碼時比較有用。
例子代碼:bool變量的實現
class Creature {
  bool isFrog;
public:
  Creature() : isFrog(true) {}
  void greet() {
    if(isFrog)
      cout << "Ribbet!" << endl;
    else
      cout << "Darling!" << endl;
  }
  void kiss() { isFrog = false; }
};

int main() {
  Creature creature;
  creature.greet();
  creature.kiss();
  creature.greet();
}
所有的函數執行操作前都要測試isForg,通過State模式,就可以避免這樣的情況。
下面是用State模式實現的代碼:
#include <iostream>
#include <string>
using namespace std;

class Creature {
  class State {
  public:
    virtual string response() = 0;
  };
  class Frog : public State {
  public:
    string response() { return "Ribbet!"; }
  };
  class Prince : public State {
  public:
    string response() { return "Darling!"; }
  };
  State* state;
public:
  Creature() : state(new Frog()) {}
  void greet() {
    cout << state->response() << endl;
  }
  void kiss() {
    delete state;
    state = new Prince();
  }
};

int main() {
  Creature creature;
  creature.greet();
  creature.kiss();
  creature.greet();
} ///:~

posted on 2009-04-12 12:31 Benjamin 閱讀(524) 評論(0)  編輯 收藏 引用 所屬分類: C/C++

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            日韩一区二区高清| 亚洲欧美第一页| 欧美天天影院| 欧美日本网站| 欧美视频一区二区三区…| 欧美美女bb生活片| 国产精品免费看| 国产亚洲aⅴaaaaaa毛片| 国产一区二区三区免费观看| 亚洲高清电影| 在线视频亚洲欧美| 午夜久久美女| 久热爱精品视频线路一| 亚洲成色www8888| 亚洲精品一级| 欧美一区91| 欧美国产一区二区| 国产美女在线精品免费观看| 在线看一区二区| 一区二区三区精品久久久| 欧美与黑人午夜性猛交久久久| 久久躁狠狠躁夜夜爽| 亚洲精品久久久一区二区三区| 亚洲欧美乱综合| 欧美xxxx在线观看| 国产美女搞久久| 亚洲精品免费一二三区| 欧美一区网站| 亚洲精品欧美在线| 欧美在线视频二区| 欧美日韩在线视频观看| 激情丁香综合| 校园春色综合网| 欧美成人精品福利| 亚洲在线视频| 欧美日本免费| 在线精品国精品国产尤物884a| 亚洲午夜精品| 亚洲国产专区| 久久亚洲图片| 国内一区二区三区在线视频| 亚洲五月六月| 亚洲精品一区二区三区在线观看| 久久久女女女女999久久| 国产伦精品一区二区三区照片91 | 美女黄网久久| 国产日产欧产精品推荐色 | 欧美成年人视频网站欧美| 国产伪娘ts一区 | 91久久久亚洲精品| 欧美v日韩v国产v| 红桃视频一区| 久久精品亚洲一区二区| 亚洲视频精选| 国产精品jizz在线观看美国 | 亚洲欧美日韩一区二区在线 | 久久久久久夜| 亚洲一区二区三区国产| 欧美揉bbbbb揉bbbbb| 亚洲人人精品| 欧美福利一区二区三区| 久久久久久久综合日本| 国产在线观看一区| 久久久久久久综合| 久久国产福利国产秒拍| 国产日韩精品综合网站| 欧美一区二视频在线免费观看| 亚洲精品日韩激情在线电影| 欧美国产在线电影| 99热这里只有精品8| 亚洲精品视频二区| 国产精品高清在线| 久久aⅴ乱码一区二区三区| 亚洲欧美中日韩| 国内自拍亚洲| 亚洲第一精品久久忘忧草社区| 乱中年女人伦av一区二区| 最新中文字幕一区二区三区| 亚洲国产婷婷综合在线精品 | 欧美日韩一区成人| 午夜国产精品视频免费体验区| 亚洲综合电影| 在线看国产一区| 亚洲精品欧美一区二区三区| 国产精品mm| 乱中年女人伦av一区二区| 欧美成年人视频网站欧美| 亚洲在线免费观看| 久久九九精品| 一区二区不卡在线视频 午夜欧美不卡在 | 激情综合色综合久久| 欧美激情a∨在线视频播放| 欧美精品黄色| 欧美专区在线播放| 欧美成人免费一级人片100| 亚洲自拍偷拍网址| 久久深夜福利免费观看| 亚洲小说欧美另类社区| 欧美在线视频全部完| 亚洲最新视频在线播放| 欧美在线黄色| 宅男66日本亚洲欧美视频| 久久精彩免费视频| 亚洲视频导航| 裸体一区二区| 欧美一区二区在线视频| 欧美激情欧美激情在线五月| 欧美亚洲视频在线看网址| 91久久在线| 欧美在线免费一级片| 一区二区免费在线播放| 久久理论片午夜琪琪电影网| 亚洲自拍三区| 欧美福利一区二区| 老牛影视一区二区三区| 国产精品免费观看在线| 亚洲国产一二三| 在线成人av.com| 久久电影一区| 欧美中文字幕久久| 国产精品爱久久久久久久| 亚洲国产一区二区三区青草影视 | 日韩一级黄色av| 亚洲成色777777女色窝| 午夜在线精品| 欧美专区一区二区三区| 国产精品捆绑调教| 99综合视频| 一本久久综合亚洲鲁鲁| 欧美不卡在线| 亚洲国产黄色| 亚洲欧洲日本专区| 老司机精品视频网站| 老**午夜毛片一区二区三区| 国产日韩精品一区二区浪潮av| 亚洲乱亚洲高清| 亚洲毛片av在线| 欧美伦理在线观看| 日韩午夜在线视频| 亚洲欧美日本国产专区一区| 欧美日韩免费精品| 一区二区三区.www| 亚洲欧美日韩一区二区三区在线观看| 欧美日韩精品欧美日韩精品| 亚洲人成啪啪网站| 一区二区欧美激情| 国产精品久久久久久亚洲毛片| 中文日韩在线| 久久精品天堂| **网站欧美大片在线观看| 久久综合给合久久狠狠色| 欧美顶级大胆免费视频| 亚洲精品一区二区三区四区高清 | 亚洲欧美成人精品| 国产日韩欧美成人| 久久精品日韩| 亚洲国产精品精华液网站| 日韩亚洲在线观看| 国产精品久久久久久久久久妞妞| 亚洲午夜精品久久| 久久久久久久久久久久久9999| 在线观看亚洲一区| 欧美日韩免费一区二区三区| 亚洲午夜电影在线观看| 久久嫩草精品久久久精品| 亚洲国产视频一区二区| 欧美日韩精品免费观看视频完整| 亚洲在线观看视频| 欧美大片18| 亚洲女性裸体视频| 国产区二精品视| 亚洲卡通欧美制服中文| 亚洲欧美一区二区激情| 韩国一区电影| 欧美另类一区二区三区| 亚洲欧美一区二区在线观看| 免费成人av| 中国成人亚色综合网站| 黄色精品免费| 国产精品草草| 久热国产精品视频| 亚洲视频网在线直播| 男人插女人欧美| 午夜在线精品| 一本久久综合| 亚洲福利视频一区| 国产精品午夜国产小视频| 欧美成人福利视频| 久久久久国内| 亚洲一区二区高清视频| 欧美成人精品| 久久久久久久性| 亚洲欧美日韩电影| 亚洲精品女av网站| 在线电影国产精品| 国模套图日韩精品一区二区| 国产精品久久久久9999吃药| 欧美成人免费在线| 久久美女性网| 久久成人羞羞网站|