国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

javascript設(shè)計(jì)模式 ? 代理模式原理與用法實(shí)例分析

瀏覽:5日期:2023-11-03 17:03:29

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

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

定義:給某一個(gè)對(duì)象提供一個(gè)代理,并由代理對(duì)象控制對(duì)原對(duì)象的引用。代理模式是一種對(duì)象結(jié)構(gòu)型模式。

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

示例:

var Shape = function(color){ console.log(’創(chuàng)建了一個(gè)對(duì)象’); 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();// 創(chuàng)建了一個(gè)對(duì)象// 畫方: 顏色:red x:10 y:10// 畫方: 顏色:red x:10 y:10

你可以在proxyShape中增加一些日志,權(quán)限等任務(wù)。因?yàn)榇眍惖拇嬖冢略龅娜蝿?wù)不會(huì)影響到Shape類。

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

代理模式總結(jié):

優(yōu)點(diǎn):* 代理模式可以協(xié)調(diào)調(diào)用者和被調(diào)用這,一定程度降低了系統(tǒng)耦合度。

缺點(diǎn):* 由于增加了代理對(duì)象,因此有些類型的代理模式可能會(huì)造成請(qǐng)求的處理速度變慢。* 實(shí)現(xiàn)代理模式需要額外的工作,有些代理模式的實(shí)現(xiàn)非常復(fù)雜。

適用場(chǎng)景:* 當(dāng)客戶端需要訪問遠(yuǎn)程主機(jī)中的對(duì)象時(shí),可以使用遠(yuǎn)程代理。* 當(dāng)需要用一個(gè)消耗資源較少的對(duì)象來代表資源消耗較多的對(duì)象,可以使用虛擬代理* 當(dāng)需要控制一個(gè)對(duì)象的訪問,為不同用戶提供不同級(jí)別的訪問權(quán)限時(shí)可以使用保護(hù)代理

感興趣的朋友可以使用在線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錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》

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

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 在线高清一级欧美精品 | 男人操美女逼视频 | 成人欧美一区二区三区黑人免费 | 俺来也欧美亚洲a∨在线 | 一本色道久久88 | 欧美成人影院 在线播放 | 欧美久草视频 | 国内交换一区二区三区 | 在线播放成人高清免费视频 | 国产成人精品午夜免费 | 中国国语毛片免费观看视频 | 国产精品高清在线观看93 | 男女配种猛烈免费视频 | 免费国产成人高清在线看软件 | 欧美一级美片在线观看免费 | 国产一区影视 | 韩国美女激情视频一区二区 | 国产男女猛烈无遮档免费视频网站 | 91精品国产91久久久久 | 欧美三级在线观看不卡视频 | 精品在线视频播放 | 另类专区另类专区亚洲 | 亚洲欧美综合一区二区三区四区 | 欧美三级一区二区三区 | 亚洲m男在线中文字幕 | 亚洲无吗 | 国产一级内谢a级高清毛片 国产一级片毛片 | 欧美性色大片 | 欧美精品v日韩精品v国产精品 | 韩国毛片 | 精品伊人久久久久网站 | 步兵社区在线观看 | 乱人伦中文视频在线观看免费 | 欧美日韩永久久一区二区三区 | 欧美日韩一区二区三区在线播放 | 亚洲国产成人精品久久 | 欧美成人午夜在线全部免费 | 最新69成人精品毛片 | 久久久久久久久久久久久久久久久久 | 91精品成人福利在线播放 | 91国高清视频 |