注意和Adapter 的区别,这个两个有共用的基类
和Decade很相似,只不过一个的功能是增加新的, 一个是代理。
# pragma once
#include <iostream>
using namespace std;
class Subject
{
public:
virtual ~Subject() {};
virtual void Request()=0 ;
protected:
Subject() {};
};
class ConcreteSubject: public Subject
{
public:
ConcreteSubject() {};
~ConcreteSubject() {};
virtual void Request()
{
cout<<"ConcreteSubject"<<endl;
}
};
class Proxy: public Subject
{
public:
Proxy() { su=NULL;};
~Proxy()
{
delete su;
su=NULL;
}
void Request()
{
Subject* su=new ConcreteSubject();
su->Request();
}
private:
Subject* su;
};
int main(int argc, char* argv[])
{
Proxy* pr= new Proxy();
pr->Request();
return 0;
}