⑪控制访问-代理模式

代理模式

为另一个对象提供一个替身或占位符以控制对这个对象的访问。

代理模式非常灵活,可能不经意写的一行代码也是代理模式,例如:

  • 分发请求到到远程
  • 为初始化开销大的对象提供代理
  • 保护某些对方法不能访问

JS 中提供了 Proxy 这个代理对象,

图片加载

想象一下一个图片的加载过程是不是可以通过代理来实现

  • 发起加载图片并绘制在页面上的请求
  • 这个请求将发送给代理对象
  • 代理对象通过网络获取图片
  • 绘制图片并提供图片控制的接口

防火墙代理

控制网络资源的访问,保护主题免于侵害

只能引用代理

当主题被引用时,进行额外的动作,例如计算一个对象被引用的次数

缓存代理

为开销大的运算结果提供暂时存储,它也允许多个客户共享结果,以减少计算或网络延迟。

同步代理

在多线程的情况下,提供安全访问。

复杂隐藏代理

用来隐藏一个类的复杂度,并控制访问,有时候也称为 外观代理
复杂隐藏代理和外观模式不一样,因为代理控制访问,而外观模式提供另一组接口。

写入时复制代理

用来控制对象的复制,方法是延迟对象的复制,直到客户真的需要为止。这是虚拟代理的变体。

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2015-2025 SunZhiqi

此时无声胜有声!

支付宝
微信