#include <stdio.h>
#include <iostream>
using namespace std;
/*抽象类*/
class Subject{
public:
virtual void Request() = 0;
virtual ~Subject(){};
};
/*真实的抽象类*/
class RealSubject:public Subject
{
public:
void Request()
{
cout << "真实的请求" << endl;
}
~RealSubject(){};
};
/*代理类*/
class Proxy: public Subject
{
public:
void Request()
{
if (m_realSubject == NULL)
{
m_realSubject = new RealSubject();
cout<<"=====";
}
m_realSubject->Request();
}
~Proxy()
{
delete m_realSubject;
m_realSubject = NULL;
}
protected:
RealSubject* m_realSubject;
};
//客户端测试
int main(int argc,const char * argv[])
{
Proxy* proxy=new Proxy();
proxy->Request();
delete proxy;
proxy = NULL;
return 0;
}
运行结果:=====真实的请求