代理模式

对象的结构模式!

前言

对象间的间接通信同样是面向对象的设计中一条重要的“审美观”。

定义

给某一个对象提供一个代理对象,由代理对象控制对原对象的引用。

作用

低耦合!易复用!

代理模式的时序图

代理模式

代理的种类

  1. 远程代理

将网络细节隐藏,代理对象承担网络通信工作。(Dubbo调用)

     2.虚拟代理

代理对象可以在必要的时候才将被代理的对象加载;可以对加载的过程进行优化;(当模块的加载非常耗费资源时效果显著)

     3.保护代理

运行时对用户的有关权限进行检查,在核实后将调用传递給被代理对象。

     4.智能引用代理

访问对象时,可以执行一些内务操作。例如:计数操作。

 

代理模式与适配器模式的关系

都提供一种前置的接口。

适配器模式:需要改变考虑对象的接口。

代理模式:不改变考虑对象的接口。

代理模式与装饰模式的关系

装饰模式:为所装饰的对象提供增强功能。

代理模式:对对象的使用施加控制,并不提供对象本身的增强功能。

 

代理模式与门面模式的关系

有时候,门面模式兼任代理模式的职责。

例如:门面对象可能是一个位于另外地址的系统的远程代理;

门面模式还可能兼任保护代理的角色,负责校验权限等工作;

门面模式还可能记录系统调用次数,兼任只能引用代理角色;

门面模式还兼任虚拟代理角色,当系统加载非常消耗资源,时间的时候;