/********************************* *设计模式--代理模式实现 *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; }