Proxy(代理)模式

Proxy(代理)模式

Proxy(代理)-对象结构型模式 - 设计模式


1. 意图

为其它对象提供一种代理以控制对这个对象的访问.

2. 别名

Surrogate

4. 适用性

远程代理(Remote Proxy)为一个对象在不同的地址空间提供局部代表.
虚代理(Virtual Proxy) 根据需要创建开销很大的对象.
保护代理(Protection proxy) 控制对原是对象的访问.
智能指针(Smart Reference)

远程(Remote)代理: 为一个位于不同地址空间的对象提供一个局域代表对象.
虚拟(Virtual)代理:  根据需要创建一个资源消耗较大的对象. 使此对象只有在真正需要时才真正被创建.
Copy_on_Write代理: 即写时复制技术. 它是虚拟代理的一种. 把复制拖延到真正需要的时候才进行.
保护(Protect or Access)代理: 控制对一个对象的访问. 需要的时候可以给不同的用户提供不同的权限.
Cache代理: 为某一个目标操作的结果提供临时的存储空间. 
防火墙(Firewall)代理: 保护目标. 不让恶意用户接近.
同步化(Synchronization)代理: 例如在多线程的时候.让多个线程访问对象. 智能引用(Smart Reference)代理: 见智能指针.
                                             --《Java与模式》


5. 结构

Proxy(代理)模式_第1张图片

6. 参与者

Proxy
    ----保存一个被代理的实体的引用.通过该引用控制实际对象.
    ----提供一个与Subject相同的接口.这样代理就可以代替实体.
    ----控制对实体的存取.并可能负责创建和删除它.
    ----其它功能.
Subject
    ----定义了RealSubject和Proxy的共用接口. 这样就可以在使用RealSubject的地方
        使用Proxy.
RealSubject
    ----定义Proxy所代表的实体.

你可能感兴趣的:(Proxy(代理)模式)