设计模式-代理模式

来源:互联网 发布:杜应流 知乎 编辑:程序博客网 时间:2024/06/05 10:24

    代理模式:为其他对象提供一种代理以控制对这个对象的访问。

    代理模式的使用情况:

    1. 远程代理,也就是为了一个对象在不同的地址空间提供局部代表,这样可以隐藏一个对象存在于不同地址空间的事实。

    2. 虚拟代理,根据需要创建一个开销很大的对象,通过它来存放实例化需要很长时间的真实对象。

    3. 安全代理,用来控制真实对象的访问权限。

    4. 智能指引,当调用真实对象时,代理可以处理另外一些事。


#include <iostream.h>#include <string.h>class CGiveGift{public:virtual void GiveDolls()=0;virtual void GiveFlowers()=0;virtual void GiveChocolate()=0;};class CPursuit:public CGiveGift{private:char m_girl[30];public:CPursuit(char *girl){strcpy(m_girl,girl);}void GiveDolls(){cout<<m_girl<<",送你洋娃娃"<<endl;}void GiveFlowers(){cout<<m_girl<<",送你花"<<endl;}void GiveChocolate(){cout<<m_girl<<",送你巧克力"<<endl;}};class CProxy:public CGiveGift{private:CPursuit m_pursuit;public:CProxy(char *girl):m_pursuit(girl){}void GiveDolls(){m_pursuit.GiveDolls();}void GiveFlowers(){m_pursuit.GiveFlowers();}void GiveChocolate(){m_pursuit.GiveChocolate();}};void main(){CProxy proxy("Lucy");proxy.GiveDolls();proxy.GiveFlowers();proxy.GiveChocolate();}


原创粉丝点击