概念:代理本身不具有功能,为其他对象提供一种代理以控制对这个对象的访问
概括:代理模式就是在访问对象的时候引入了一些间接性,因为这些间接性,可以附加多种用途。
C++代码实现:
#include <iostream> using namespace std; class Base{ public: virtual void fun()=0; }; class Derived:public Base{ public: /*这里才是真正的实现*/ virtual void fun() { cout<<"get"<<endl; } }; class Proxy:public Base{ private: /*必须基类指针,为了实现多态,指向真正具有功能的对象*/ Base *p; public: Proxy(Base *t):Base() { p=t; } /*类间通信*/ void fun() { p->fun(); } }; int main(void) { Base *d=new Derived(); Base *p=new Proxy(d); p->fun(); delete d; delete p; return 0; }