模式)
名称:Proxy意图:为其他对象提供一种代理以控制对这个对象的访问。结构:如图所示:适用性:在需要用比较通用和复杂的对象指针代替简单的指针的时候使用Proxy模式。下面是一些可以使用Proxy模式的常见情况:(1)远程代理(Remote Proxy)为一个对象在不同的地址空间提供局部代表NEXTSTEP使用NXProxy类实现了这一目的,Coplien称这种代理为“大使(Ambassador).(2)虚代理(VirtualProxy)根据需要创建开销很大的对象。(3)保护代理(ProtectionProxy)控制对原始对象的访问。当保护代理用于对象而且有不同的访问权限的时候。例如在Choices操作系统中,KemelProxies为操作系统对象提供了访问保护。(4)智能指引(Smart Reference)取代了简单的指针它在访问对象时执行一些附加操作。它的典型用途包括:对指向实际对象的引用计数这样当该对象没有引用时可以自动释放它。当第一次引用一个持久对象时将它装入内存。在访问一个实际对象前检查是否已经锁定了它以确保其他对象不能改变它。