理解
代理模式:为其他对象提供代理以控制对该对象的访问。
UML原理图如下所示:
如图所示,真正的请求实体RealSubject和代理Proxy共用接口subject,使得代理在任何时候都能代替真正的请求实体。而客户端不需要了解以上原理,只需要在使用到请求实体时,调用代理即可。
应用场景
- 远程代理:为对象在不同的地址提供代表。
- 虚拟代理:根据需要创建开销很大的对象,通过代理来存放需要实例化很久的对象,如打开网页时,文字会很快下载好,但是大图片会随着页面滚动一张张加载,在其加载完成之前,会用一个显示未完成的图片框表示,这就是虚拟代理。
- 安全代理:应用于对象应有不同的访问权限。
- 智能指引:调用真实对象时,代理处理另一些跟该对象相关的事。