代理模式(结构型设计模式)

来源:互联网 发布:妇产科网络咨询成本 编辑:程序博客网 时间:2024/05/18 00:35

Proxy模式又叫做代理模式,是结构型的设计模式之一,他可以为其他对象提供一种代理(Proxy)以控制对这个对象的访问。
所谓代理,是指具有与代理元(被访问的对象)具有相同的接口的类,客户端必须通过代理与被代理的目标类进行交互,而代理一般在交互模式过程中(交互前后),进行某些特别的处理。
结构图:
这里写图片描述
eg:
现有一个红酒厂,需要代理卖红酒,客户端通过代理,得到红酒。
实现:

class Base{public :    virtual void method() = 0;    virtual ~Base(){}};//代理类class Proxy :public Base{private:    Base *pb = NULL;public:    Proxy(Base *pb){        this->pb = pb;    }    void method(){        pb->method();    }    ~Proxy(){        delete pb;    }};//被代理类class Source :public Base{public:    void method(){        cout << "红酒" << endl;    }};

调试:

int main(void){    Proxy *proxy = new Proxy(new Source());    proxy->method();    delete proxy;    return 0;}
原创粉丝点击