设计模式之 代理模式

一、定义

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

二、分析

  • 使用代理模式创建代表对象,让代表对象控制某对象的访问,被代理的对象可以是远程对象、创建开销大的对象或者是需要进行安全控制的对象。
  • 代理在结构上类似装饰者,但目的是不同的;装饰者为对象添加行为,而代理则是控制访问。
  • 和装饰器一样,代理会造成设计类的增加。

三、类图

代理模式类图

四、使用场景

  • 远程代理(Java RMI):适用于服务对象位于远程服务器上的情形。

  • 虚拟代理:控制访问创建开销大的资源,在实际需要它时才去真正创建它。当对象在创建前和创建中时,由虚拟代理地来扮演对象的替身。对象创建后,代理就会将请求直接委托给对象。

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

  • 防火墙代理:控制网络资源的访问,保护主题免于”坏客户“的侵害。

  • 智能引用代理:当主题被引用时,进行额外的动作,例如计算一个对象被引用的次数。

五、代码实现

源码:gitee地址(点击跳转)

原创内容,如果你觉得文章还可以的话,不妨点个赞支持一下!转载请注明出处。
原文地址:https://www.cnblogs.com/lixingwu/p/14616849.html