引言
在软件开发过程中,有些对象有时候会由于网络或其他障碍,以至于不能够或者不能直接访问到这些对象,如果直接访问对象给系统带来不必要的复杂性,这时候可以在客户端和目标对象之间增加一层中间层,让代理对象代替目标对象,然后客户端只需要访问代理对象,由代理对象去帮我们请求目标对象并返回结果给客户端,这就是代理模式的实现思路。
详细介绍
代理模式按照使用目的可以分为以下几种:
- 远程(Remote)代理:为一个位于不同的地址空间的对象提供一个局域代表对象。这个不同的地址空间可以是本电脑中,也可以在另外一台电脑中。最典型的例子就是——客户端调用Web服务器或WCF服务
- 虚拟(virtual)代理:根据需要创建一个资源消耗较大的对象,使得对象只在需要时才会被真正创建
- Copy-on-Write代理:虚拟代理的一种,把复制拖延到只有在客户端需要时,才真正采取行动
- 保护(Protecte or Access)代理:控制一个对象的访问,可以给不同的用户提供不同级别的使用权限
- 防火墙(Firewall)代理:保护目标不受恶意用户接近
- 智能引用(Smart Reference)代理:当一个对象被引用时&