一、意图:
提供代理以控制对象的访问;
二、类图:
三、组成元素:
Subject:公共接口;
Proxy:代理,保存引用用以访问对象;
RealSubject:定义Proxy所代表的实体;
四、实现代码:
#include "iostream" using namespace std; class Subject { public: virtual void Request()=0; }; class RealSubject:public Subject { public: virtual void Request() { cout<<"Request By RealSubject"<<endl; } }; class Proxy:public Subject { private: RealSubject* m_pRealSubject; public: Proxy() { m_pRealSubject=NULL; } virtual void Request() { if (m_pRealSubject==NULL) { cout<<"Request By Proxy"<<endl; m_pRealSubject=new RealSubject(); } m_pRealSubject->Request(); } }; void main() { Subject* pProxy=new Proxy(); pProxy->Request(); delete pProxy; system("pause"); }