定义:
代理模式为另一对象提供一个替身或占位符,以便控制对这个对象的访问。
类图:

应用:
1.虚拟代理,控制访问创建开销大的资源
- 实现图片预加载:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28var image = (function() {
var img = document.createElement('img');
document.body.appendChild(img);
return {
setSrc: function(src) {
img.src = src;
}
}
})();
// 代理
var proxyImage = (function() {
var img = new Image();
img.onload = function() {
image.setSrc(this.src);
};
return {
setSrc: function(src) {
image.setSrc('loading.gif');
img.src = src;
}
}
})();
// 调用
proxyImage.setSrc('logo.png');
2.保护代理,基于权限控制对资源的访问
3.远程代理,控制远程访问对象