设计模式 - 代理模式

定义

Provide a surrogate or placeholder for another object to control access to it.

UML

实例

Web Service,多图片滑动加载虚拟代理,快捷方式,

  1. 延迟初始化(虚拟代理)。偶尔使用的重量级服务对象。
  2. 访问控制(保护代理)。特定客户端使用服务对象。
  3. 本地执行远程服务(远程代理)。执行远程服务器上的服务对象。
  4. 纪录日志请求(日志纪录代理)。保存服务对象的请求历史纪录。
  5. 缓存请求结果(缓存代理)。请求返回结果的体积非常大时,缓存客户端请求结果并对缓存生命周期进行管理
  6. 智能引用。客户端不再使用某个重量级对象时立即销毁该对象。

比较

比较 代理模式 备注
适配器模式 代理为对象提供相同的接口 适配器为对象提供不同的接口
外观模式 代理缓存了一个复杂实体并自行对其进行初始化。代理与其服务对象遵循同一接口,自己和服务对象可以互换 外观提供了新接口,与服务对象不能互换
装饰者模式 代理和装饰者都基于组合原则,一个对象将部分工作委派给另外一个对象。代理通常自行管理其服务对象的生命周期 装饰者为对象提供加强的接口,装饰者的生成由客户端进行控制
posted @ 2022-04-21 23:46  wesson2019  阅读(22)  评论(0编辑  收藏  举报