最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript設計模式之代理模式簡單實例教程

 更新時間:2018年07月03日 09:28:12   作者:CangoWu  
這篇文章主要介紹了JavaScript設計模式之代理模式,簡單描述了代理模式的概念、功能、組成并結(jié)合實例形式較為詳細的分析了javascript代理模式的定義與使用相關操作技巧,需要的朋友可以參考下

本文實例講述了JavaScript設計模式之代理模式。分享給大家供大家參考,具體如下:

一、代理模式概念

代理,顧名思義就是幫助別人做事,GoF對代理模式的定義如下:

代理模式(Proxy),為其他對象提供一種代理以控制對這個對象的訪問。代理模式使得代理對象控制具體對象的引用。代理幾乎可以是任何對象:文件,資源,內(nèi)存中的對象,或者是一些難以復制的東西。

解釋:房屋中介,可以代理幫助賣家把房子賣給買家,這中間賣家說要賣的價錢就可以了,買家也可以提出自己要買的房型,中介可以幫忙處理中間環(huán)節(jié)。最后達成買賣。中介可以同時代理很多房屋買賣,并且可以代理租房事宜。

代理模式的組成:

抽象角色:通過接口或抽象類聲明真實角色實現(xiàn)的業(yè)務方法。

代理角色:實現(xiàn)抽象角色,是真實角色的代理,通過真實角色的業(yè)務邏輯方法來實現(xiàn)抽象方法,并可以附加自己的操作。

真實角色:實現(xiàn)抽象角色,定義真實角色所要實現(xiàn)的業(yè)務邏輯,供代理角色調(diào)用。

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

模式作用:

1、遠程代理(一個對象將不同空間的對象進行局部代理)

2、虛擬代理(根據(jù)需要創(chuàng)建開銷很大的對象如渲染網(wǎng)頁暫時用占位代替真圖)

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

4、智能指引(調(diào)用對象代理處理另外一些事情如垃圾回收機制)

注意事項:

1、不能濫用代理,有時候僅僅是給代碼增加復雜度

三、代理模式代碼和實戰(zhàn)總結(jié)

<!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){
//   console.log("收到了來自【"+this.maijia_name+"】"+money+"人民幣");
   console.log("收到了來自【"+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){
   console.log("收到了錢"+money);
  }
 }
 (new to()).maifang();
 to().maifang();
</script>
</body>
</html>

使用在線HTML/CSS/JavaScript代碼運行工具 http://tools.jb51.net/code/HtmlJsRun測試運行效果如下:

更多關于JavaScript相關內(nèi)容可查看本站專題:《javascript面向?qū)ο笕腴T教程》、《JavaScript切換特效與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript錯誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學運算用法總結(jié)

希望本文所述對大家JavaScript程序設計有所幫助。

相關文章

最新評論

黄山市| 奉贤区| 寿光市| 弥渡县| 克什克腾旗| 汾阳市| 深泽县| 四子王旗| 交城县| 南投市| 措勤县| 青神县| 秭归县| 海晏县| 香格里拉县| 扎兰屯市| 杂多县| 常宁市| 遂川县| 宁夏| 大厂| 新化县| 汝南县| 会昌县| 洛川县| 凤凰县| 康乐县| 康定县| 清原| 金溪县| 左云县| 枣阳市| 西吉县| 潮安县| 华安县| 慈利县| 松原市| 天台县| 丹江口市| 四平市| 永修县|