对象的结构模式!
前言
对象间的间接通信同样是面向对象的设计中一条重要的“审美观”。
定义
给某一个对象提供一个代理对象,由代理对象控制对原对象的引用。
作用
低耦合!易复用!
代理模式的时序图
代理的种类
- 远程代理
将网络细节隐藏,代理对象承担网络通信工作。(Dubbo调用)
2.虚拟代理
代理对象可以在必要的时候才将被代理的对象加载;可以对加载的过程进行优化;(当模块的加载非常耗费资源时效果显著)
3.保护代理
运行时对用户的有关权限进行检查,在核实后将调用传递給被代理对象。
4.智能引用代理
访问对象时,可以执行一些内务操作。例如:计数操作。
代理模式与适配器模式的关系
都提供一种前置的接口。
适配器模式:需要改变考虑对象的接口。
代理模式:不改变考虑对象的接口。
代理模式与装饰模式的关系
装饰模式:为所装饰的对象提供增强功能。
代理模式:对对象的使用施加控制,并不提供对象本身的增强功能。
代理模式与门面模式的关系
有时候,门面模式兼任代理模式的职责。
例如:门面对象可能是一个位于另外地址的系统的远程代理;
门面模式还可能兼任保护代理的角色,负责校验权限等工作;
门面模式还可能记录系统调用次数,兼任只能引用代理角色;
门面模式还兼任虚拟代理角色,当系统加载非常消耗资源,时间的时候;