概念
Proxy Pattern:为某个对象提供一个代理,并由这个代理对象控制对原有对象的访问。
消息队列就是这种模式
使用
ES6提供了Proxy
构造函数能够让我们轻松地使用代理模式
var proxy = new Proxy(target, handler);
new Proxy()
表示生成一个Proxy
实例target
参数表示所有拦截的目标对象handler
参数也是一个对象,用来定制拦截行为
1 | var target = { |
优点
降低了系统的耦合度
不同类型的代理可以让客户端对目标对象的访问进行不同的控制:
- 远程代理:让客户端可以访问在远程对象上的对象。远程机器可能具有更好的计算性能与处理速度,可以快速响应并处理客户端请求
- 虚拟代理:通过使用一个小对象来代表一个大对象,可以减少系统资源的消耗,对系统进行优化并提高运行速度
- 保护代理:可以控制客户端对真实对象的使用权限
缺点
- 由于增加了代理对象,可能会让客户端请求的速度变慢