欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript設(shè)計(jì)模式之代理模式簡(jiǎn)單實(shí)例教程

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

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

一、代理模式概念

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

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

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

代理模式的組成:

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

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

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

二、代理模式的作用和注意事項(xiàng)

模式作用:

1、遠(yuǎn)程代理(一個(gè)對(duì)象將不同空間的對(duì)象進(jìn)行局部代理)

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

3、安全代理(控制證實(shí)對(duì)象的訪問權(quán)限)

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

注意事項(xiàng):

1、不能濫用代理,有時(shí)候僅僅是給代碼增加復(fù)雜度

三、代理模式代碼和實(shí)戰(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代碼運(yùn)行工具 http://tools.jb51.net/code/HtmlJsRun測(cè)試運(yùn)行效果如下:

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

希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • layer彈出層的關(guān)閉問題詳解之在執(zhí)行完畢后關(guān)閉當(dāng)前彈出層

    layer彈出層的關(guān)閉問題詳解之在執(zhí)行完畢后關(guān)閉當(dāng)前彈出層

    在前端頁面中用layer打開窗口供用戶輸入或選擇是非常常見的用法,但是有時(shí)為了完成一次操作,需要彈出多個(gè)窗口進(jìn)行選擇、輸入或者提示,因此在關(guān)閉窗口的時(shí)候需要實(shí)現(xiàn)指定關(guān)閉任意窗口,需要的朋友可以參考下
    2023-10-10
  • 使用typescript推導(dǎo)已有變量的盲盒類型詳情

    使用typescript推導(dǎo)已有變量的盲盒類型詳情

    這篇文章主要介紹了使用typescript推導(dǎo)已有變量的盲盒類型詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • 基于Bootstrap框架菜鳥入門教程(推薦)

    基于Bootstrap框架菜鳥入門教程(推薦)

    下面小編就為大家?guī)硪黄贐ootstrap框架菜鳥入門教程(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • 僅9張思維導(dǎo)圖幫你輕松學(xué)習(xí)Javascript 就這么簡(jiǎn)單

    僅9張思維導(dǎo)圖幫你輕松學(xué)習(xí)Javascript 就這么簡(jiǎn)單

    僅9張思維導(dǎo)圖幫你輕松學(xué)習(xí)Javascript,從javascript變量、javascript運(yùn)算符、javascript函數(shù)基礎(chǔ)等多方面了解Javascript,就這么簡(jiǎn)單
    2016-06-06
  • JS創(chuàng)建對(duì)象的寫法示例

    JS創(chuàng)建對(duì)象的寫法示例

    這篇文章主要介紹了JS創(chuàng)建對(duì)象的寫法,結(jié)合實(shí)例形式分析了javascript對(duì)象的定義、實(shí)現(xiàn)方法與使用技巧,需要的朋友可以參考下
    2016-11-11
  • 捕獲和分析JavaScript Error的方法

    捕獲和分析JavaScript Error的方法

    這篇文章主要介紹了如何捕獲和分析 JavaScript Error,感興趣的朋友可以參考下
    2014-03-03
  • JavaScript中常見的繼承方式總結(jié)

    JavaScript中常見的繼承方式總結(jié)

    這篇文章主要和大家詳細(xì)介紹了JavaScript中常見的幾種繼承方式,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)JavaScript有一定幫助,需要的小伙伴可以參考下面文章詳細(xì)內(nèi)容
    2022-11-11
  • 微信小程序?qū)崿F(xiàn)表單驗(yàn)證

    微信小程序?qū)崿F(xiàn)表單驗(yàn)證

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)表單驗(yàn)證,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • arcgis for js 修改infowindow樣式的方法

    arcgis for js 修改infowindow樣式的方法

    下面小編就為大家?guī)硪黄猘rcgis for js 修改infowindow樣式的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-11-11
  • JS表格組件神器bootstrap table詳解(強(qiáng)化版)

    JS表格組件神器bootstrap table詳解(強(qiáng)化版)

    這篇文章主要以實(shí)例的方式為大家再次介紹了JS表格組件神器bootstrap table,bootstrap table界面采用扁平化的風(fēng)格,用戶體驗(yàn)比較好,更好兼容各種客戶端,需要了解更多bootstrap table的朋友可以參考下
    2016-05-05

最新評(píng)論