定义
为另一个对象提供一个替身或占位符控制这个对象的访问
特点
- 代理就是另外一个对象的代表
- 代表对象控制某对象的访问
- 被代理的对可以是远程的对象,创建开销大的对象或者需要安全控制的对象
种类
| 名称 | 特点 | 例子 |
|---|---|---|
| 远程代理 | 控制访问远程对象 | 远程监控数据 |
| 虚拟代理 | 控制访问创建开销大的对象 | 数据加载 |
| 保护代理 | 基于权限控制对资源的访问 | 相亲配对服务(保护相亲数据不被对手修改) |
| 防火墙代理 | 控制网络资源的访问,保护主题免于侵害 | |
| 缓存代理 | 为开销大的运算结果提供暂时的存储;它也允许多个客户共享结果,以减少计算或网络延迟 | |
| 同步代理 | 多线程的情况下,为主题提供安全访问 |
此外还有:智能引用代理,复杂隐藏代理,写入时复制代理......