设计模式--代理

文章目录


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

意图

控制对其他对象的访问。

类图

代理有四类:

  • 远程代理(Remote Proxy):控制对远程对象(不同地址空间)的访问,他负责将请求及其参数进行编码,并向不同地址空间中的对象发送已经编码的请求。
  • 虚拟代理(Virtual Proxy)根据需要创建开销很大的对象,他可以缓存实体的附加信息,以便延迟对它的访问,例如在网站上加载一个很大的图片时,不能马上完成,就可以用虚拟代理缓存图片的大小信息,然后生成一张临时图片代替原始图片。
  • 保护代理(Protection Proxy):按权限控制对象的访问,他负责检查调用者是否具有实现一个请求所必需的访问权限。
  • 智能代理(Smart Proxy):取代了简单的指针,他在访问对象时执行一些附加操作:记录对象的引用次数;当第一次引用一个持久化对象时,将他装入内存;在访问一个实际对象前,检查是否已经锁定了它,以确保其他对象不能改变它。

实现

以下是一个虚拟代理的实现,模拟了图片延迟加载的情况下使用与图片大小相等的临时内容去替换原始图片,直到图片加载完成才将图片显示出来。
在这里插入图片描述
在这里插入图片描述
感谢并参考:
https://pdai.tech/md/dev-spec/pattern/14_proxy.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值