设计模式之 代理模式
一、定义
代理模式:为另一个对象提供一个替身或者占位符以控制对这个对象的访问。
二、分析
- 使用代理模式创建代表对象,让代表对象控制某对象的访问,被代理的对象可以是远程对象、创建开销大的对象或者是需要进行安全控制的对象。
- 代理在结构上类似装饰者,但目的是不同的;装饰者为对象添加行为,而代理则是控制访问。
- 和装饰器一样,代理会造成设计类的增加。
三、类图
四、使用场景
-
远程代理(Java RMI):适用于服务对象位于远程服务器上的情形。
-
虚拟代理:控制访问创建开销大的资源,在实际需要它时才去真正创建它。当对象在创建前和创建中时,由虚拟代理地来扮演对象的替身。对象创建后,代理就会将请求直接委托给对象。
-
缓存代理:为开销大的运算提供暂时的存储,它允许多个客户共享结果,以减少计算或者网络延迟。
-
防火墙代理:控制网络资源的访问,保护主题免于”坏客户“的侵害。
-
智能引用代理:当主题被引用时,进行额外的动作,例如计算一个对象被引用的次数。
五、代码实现
原创内容,如果你觉得文章还可以的话,不妨点个赞支持一下!转载请注明出处。