代理模式的定义:为一个对象创建一个替代品,提供全部特性和部分特性,实现访问控制。显示中比方说火车站和火车票代售点的关系。
在代理模式中,有三个参与者,分别是调用、代理、本体。与一般的调用到本体的关系相比,通过中间代理,我们可以完成一些处理,再讲请求转交到本体。我们让本体专注于自身逻辑的实现,将一些额外的行为交个代理实现,首先满足单一职责的原则,各自的变化不会影响到对方,同时由于代理暴露给调用者的借口是一样(或者少于本体)的,以后不再需要代理的时候可以直接替换为本体。
按照代理模式实现的功能,可以将其分为保护代理、虚拟代理和缓存代理。
保护代理
通过代理,将一些不满足要求的请求过滤掉,阻断到本体的作用的作用过程,用于控制不同对象对目标对象的访问。
虚拟代理
把一些开销很大的对象,延迟到真正需要他的时候再去创建它。
缓存代理
将一些计算过程比较耗资源的结果缓存起来,只要在参数一致的情况下直接返回结果。
以ajax请求为例,当用户满足权限要求的时候,便可以正常访问,不满足就直接返回错误提示,对于一些连续频繁的操作,可以合并之后一次性发送到服务器,减少网络请求(实时性要求不高),同时对于一部分请求结果,在请求参数不变的情况下,可以直接返回缓存的结果(数据不会频繁变动)。
|
|