/*********************************
*设计模式--代理模式实现
*C++语言
*Author:WangYong
*Blog:http://www.cnblogs.com/newwy
********************************/
#include <iostream>
#include <iostream>
using namespace std;
class Subject
{
public:
virtual ~Subject(){}
virtual void Request() = 0;
protected:
Subject(){}
};
class ConcreteSubject:public Subject
{
public:
ConcreteSubject(){}
~ConcreteSubject(){}
void Request(){cout<<"ConcreteSubject...request..."<<endl;}
};
class Proxy
{
public:
Proxy(){}
Proxy(Subject *sub){_sub = sub;}
~Proxy(){delete _sub;}
void Request(){cout<<"Proxy request..."<<endl;_sub->Request();}
private:
Subject *_sub;
};
int main()
{
Subject *sub = new ConcreteSubject();
Proxy *p = new Proxy(sub);
p->Request();
return 0;
}