代理模式

来源:互联网 发布:nginx jetty区别 编辑:程序博客网 时间:2024/05/16 13:40

模式定义:对其他对象提供一种代理以控制对这个对象的访问(Provide a surrogate or placeholder for another object to control access to it.)。

具体说明:结构型模式。为某个对象提供一个代理对象,并由代理对象持有对源对象的引用。代理就是用一个对象代表另一个对象采取行动。某些情况下,客户不想或者不能够直接访问一个对象,代理可以在客户和目标之间起到中介的作用,客户端不需要知道被代理的对象的存在和行为方式。代理模式可以使复杂的用法变得接单,但是代理需要实现被代理对象的接口,否则等于引入额外的复杂度。

模式应用:标准库中的auto_ptr和boost库中的shred_ptr,由于使用了代理,可以无需对指针进行显式的释放,更易用。

UML图示