定义
为一个对象提供一个代用品或占位符,以便控制对它的访问。比如明星的经纪人代替明星谈演唱会报酬,谈好之后明星再签合同。核心是当客户不方便直接访问一个对象或者不满足需要的时候,提供一个替身对象控制这个对象的访问,替身对象对请求进行一些处理之后再把请求转交给本体对象。
代理没有主动权
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>设计模式之代理模式</title>
</head>
<body>
<pre>代理模式</pre>
<script>
//本体
var myImage = (function() {
var imageNode = document.createElement('img');
document.body.appendChild(imageNode);
return {
setSrc: function(src) {
imageNode.src = src
}
}
})()
//代理
var proxyImage = (function() {
return {
setSrc: function(src) {
myImage.setSrc(src)
}
}
})()
proxyImage.setSrc('https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1524076704400&di=5ed9b471e41c7bd35ed161e4c3cfdcb8&imgtype=0&src=http%3A%2F%2Fpic.90sjimg.com%2Fdesign%2F00%2F75%2F92%2F97%2F59326a6aa402b.png')
</script>
</body>
</html>
网友评论