一、定义
为其他对象提供一种代理以控制(隔离,使用接口)对这个对象的访问。
可能由于性能、安全控制、分布式等原因,不能直接访问某个对象,因此需要加一层代理。
二、结构
三、使用场景
Proxy的设计有时候需要手动写代码,大部分情况可以用工具自动生成。
分布式系统proxy的应用非常广泛。
1 | class ISubject { |
四、总结
- 具体Proxy设计模式的实现方法、实现粒度都想差很大,有些肯能对单个对象细粒度的控制,如字符串copy-on-write技术,有些可能对组件模块提供抽象层代理(分布式系统),在架构层次对对象做proxy。
- “增加一层间接层”是软件系统中对许多复杂问题的一种常见解决方法。在面向对象系统中,直接使用某些对象会带来许多问题,作为间接层的proxy对象便是解决这类问题的常用手段。