Proxy

也称为:Surrogate
适用场景
远程代理:为一个远程的对象提供一个本地代表
虚拟代理:在需要的时候才会创建一个比较昂贵的对象。
保护代理:控制对原对象的访问权限。在原对象需要不同的访问权限是比较有用
智能引用:是一个指针的代替,来完成额外的任务。
结构
Proxy_第1张图片
参与对象
代理者
  • 维护一个让代理访问主体对象的指针。
  • 提供一个和主题对象一样的接口,这样代理对象就能替代主体对象
  • 控制对主体对象的访问权限,也可以创建或删除主体对象
  • 远程代理:负责编码一个请求以及它的参数,以便于把请求发送给远程的真实的主体对象
  • 虚拟代理:缓存额外关于主体对象的信息,以便于延迟访问它。
  • 保护代理:检查调用者的访问权限
主体对象
  • 为主体对象和代理定义一个借口,以便于让代理出现在主体对象应该出现的地方
真正的主体对象
  • 定义一个代理表示的真实对象
协作方式
代理对象将请求在合适的时候发送给主体对象

你可能感兴趣的:(design,pattern,设计模式)