亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

更多QQ空间微信QQ好友腾讯朋友复制链接
您的位置:首頁/技術(shù)文章
文章詳情頁

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

【字号: 作者:豬豬瀏覽:4日期:2023-11-03 17:03:29

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

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

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

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

示例:

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

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

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

代理模式總結(jié):

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

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

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

感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運行工具:http://tools.jb51.net/code/HtmlJsRun測試上述代碼運行效果。

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

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

標簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 国产精品久久久久久久久久妇女 | 亚洲成a人片在线观看中文 亚洲成a人片在线观看中文动漫 | 国产夜色视频 | 最新的国产成人精品2022 | 91影视在线| 成人亚州 | a级毛片免费高清毛片视频 a级毛片免费播放 | 一级黄色小视频 | 美国一级大黄 | wwwa级片| 成人网18免费软件大全 | 欧美大尺度交性视频 | 草逼com| 久久99精品久久久久子伦小说 | 久久精品国产欧美成人 | 欧美日韩在线高清 | 91在线高清视频 | 毛片啪啪啪 | 亚洲国产成人超福利久久精品 | 国产亚洲精品麻豆一区二区 | 欧美成人午夜视频免看 | 91精彩视频| 色综合天天综合网国产人 | 久在线| 免费高清欧美大片在线观看 | 丝袜美女被出水视频一区 | 亚洲福利国产 | 亚洲国产成人精品不卡青青草原 | 亚洲日本韩国欧美 | 99视频在线看观免费 | 国产伦码精品一区二区三区 | 女性无套免费网站在线看 | 美国黄色一级大片 | 青青操视频在线免费观看 | 91热久久免费精品99 | 精品在线观看国产 | 中文永久免费看电视网站入口 | 国产精品亚洲片在线观看不卡 | 成人性爱视频在线观看 | a免费毛片在线播放 | 国产欧美亚洲精品综合在线 |