Proxy (C++实现)
// Proxy.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
using namespace std;
class Subject
{
public:
Subject()
{}
virtual ~Subject()
{}
virtual void Request()=0;
};
class RealSubject:public Subject
{
public:
RealSubject()
{
cout<<"Construction of RealSubject"<<endl;
}
virtual ~RealSubject()
{
cout<<"Deconstruction of RealSubject"<<endl;
}
void Request ()
{
cout<<"-------------------------------------"<<endl;
}
};
class Proxy:public Subject
{
public:
Proxy():rs(NULL)
{
cout<<"Construction of Proxy for RealSubject"<<endl;
}
virtual ~Proxy()
{
delete rs;
rs=NULL;
}
void Request()
{
if(NULL==rs)
{
cout<<"Create a new RealSubject and Reaquest"<<endl;
rs=new RealSubject();
}
else
{
cout<<"The RealSubject has been created"<<endl;
}
rs->Request();
}
private:
RealSubject* rs;
};
int _tmain(int argc, _TCHAR* argv[])
{
Subject *pProxy=new Proxy();
pProxy->Request();
pProxy->Request();
delete pProxy;
return 0;
}