91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用javascript中的代理模式

發布時間:2020-08-03 11:47:52 來源:億速云 閱讀:162 作者:小豬 欄目:web開發

這篇文章主要講解了如何使用javascript中的代理模式,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。

介紹:代理使我們很常見的一眾模式,proxy,nginx都稱之為代理,代理是什么意思呢?代理模式在客戶端和目標對象之間加入一個新的代理對象,代理對象起到一個中介作用,去掉客戶不能看到的內容和服務,或者增添客戶需要的額外服務。

定義:給某一個對象提供一個代理,并由代理對象控制對原對象的引用。代理模式是一種對象結構型模式。

場景:我們還是以畫圖形為例,我將所有的繪圖動作包裝到Shape類中,使用代理模式來部分開放功能給客戶。

示例:

var Shape = function(color){
  console.log('創建了一個對象');
  this.color = color;
  this.x;
  this.y;
  this.radius;
 
  this.setAttr = function(x, y, radius){
    this.x = x;
    this.y = y;
    this.radius = radius;
  }
  this.drawCircle = function(){
    console.log('畫圓: 顏色:' + this.color + ' x:' + this.x + ' y:' + this.y + ' radius:' + this.radius)
  }
  this.drawSquare = function(){
    console.log('畫方: 顏色:' + this.color + ' x:' + this.x + ' y:' + this.y )
  }
  this.drawTriangle = function(){
    console.log('畫三角: 顏色:' + this.color + ' x:' + this.x + ' y:' + this.y )
  }
}
 
var proxyShape = function(color, x, y, radius){
  this.color = color;
  this.x = x;
  this.y = y;
  this.radius = radius;
  this.shape = null;
  this.drawSquare = function(){
    if(this.shape === null){
      this.shape = new Shape(this.color);
      this.shape.setAttr(this.x, this.y, this.radius);
    }
    this.shape.drawSquare();
  }
}
 
var square = new proxyShape('red', 10, 10);
square.drawSquare();
square.drawSquare();
// 創建了一個對象
// 畫方: 顏色:red x:10 y:10
// 畫方: 顏色:red x:10 y:10

你可以在proxyShape中增加一些日志,權限等任務。因為代理類的存在,新增的任務不會影響到Shape類。

代理模式為對象的簡介訪問提供了解決方案,可以對對象的訪問進行控制。

代理模式總結:

優點:
* 代理模式可以協調調用者和被調用這,一定程度降低了系統耦合度。

缺點:
* 由于增加了代理對象,因此有些類型的代理模式可能會造成請求的處理速度變慢。
* 實現代理模式需要額外的工作,有些代理模式的實現非常復雜。

適用場景:
* 當客戶端需要訪問遠程主機中的對象時,可以使用遠程代理。
* 當需要用一個消耗資源較少的對象來代表資源消耗較多的對象,可以使用虛擬代理
* 當需要控制一個對象的訪問,為不同用戶提供不同級別的訪問權限時可以使用保護代理

看完上述內容,是不是對如何使用javascript中的代理模式有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

汝阳县| 兴隆县| 公主岭市| 读书| 灵川县| 永年县| 东兴市| 蒙阴县| 沂水县| 嘉兴市| 罗城| 福海县| 建瓯市| 维西| 舒兰市| 博罗县| 美姑县| 买车| 娱乐| 高安市| 班玛县| 巴青县| 平湖市| 信阳市| 威海市| 南汇区| 栾城县| 吴堡县| 忻城县| 平潭县| 利辛县| 电白县| 博野县| 广安市| 清徐县| 固安县| 东兰县| 博乐市| 逊克县| 福州市| 外汇|