首頁 >web前端 >js教程 >JavaScript的設計模式經典之代理模式_javascript技巧

JavaScript的設計模式經典之代理模式_javascript技巧

WBOY
WBOY原創
2016-05-16 15:13:531785瀏覽

 一、代理模式概念

說明:顧名思義就是用一個類別來代替另一個類別來執行方法功能,這個模式跟裝飾模式有點相似,不一樣的是,代理模式是代替客戶初始化被代理對象類,而裝飾模式採用接口或初裝飾者參數引用的方式來執行的。

解釋:房屋中介,可以代理幫助賣家把房子賣給買家,這中間賣家說要賣的價​​錢就可以了,買家也可以提出自己要買的房型,中介可以幫忙處理中間環節。最後達成買賣。仲介可以同時代理很多房屋買賣,並且可以代理租屋事宜。

二、代理模式的作用及注意事項

模式作用:

1、遠端代理(一個物件將不同空間的物件進行局部代理)

2、虛擬代理(依需求建立開銷很大的物件如渲染網頁暫時用佔位取代真圖)

3、安全代理(控制證實對象的存取權限)

4、智慧指引(呼叫物件代理處理另外一些事情如垃圾回收機制)

注意事項:

1、不能濫用代理,有時候只是為程式碼增加複雜度

三、代理模式程式碼與實戰總結

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script>
//代理模式需要三方
//1.买家
function maijia(){
this.name = "小明";
this.money = "30万";
}
//2.中介
function zhongjie(){
}
zhongjie.prototype.maifang = function(){
//new fongdong(new maijia()).maifang("20万");
new fongdong(new maijia()).maifang("20万");
}
//3.卖家
function fongdong(maijia){
this.maijia_name = maijia.name;
this.maijia_money = maijia.money;
this.maifang = function(money){
// alert("收到了来自【"+this.maijia_name+"】"+money+"人民币");
alert("收到了来自【"+this.maijia_name+"】"+this.maijia_money+"人民币");
}
}
(new zhongjie()).maifang();
</script>
<script>
// A2B
function A(){
this.money = "20RMB";
}
function to(){
if(!(this instanceof to)){
return new to;
}
}
to.prototype.maifang = function(){
var a = new A();
new B().maifang(a.money);
}
function B(){
this.maifang = function(money){
alert("收到了钱"+money);
}
}
(new to()).maifang();
to().maifang();
</script>
</body>
</html>

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn