国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

輕松掌握JavaScript代理模式

2019-11-20 09:09:07
字體:
來源:轉載
供稿:網友

在面向對象設計中,有一個單一職責原則,指就一個類(對象、函數)而言,應該僅有一個引起它變化的原因。如果一個對象承擔了過多的職責,就意味著它將變得巨大,引起它變化的原因就多,它把這些職責耦合到了一起,這種耦合會導致程序難于維護和重構。 

這時候,我們可以把該對象(本體)的其中一部分職責分離出來給一些第三方對象去做,本體只管自己的一些核心職責,這些第三方對象就稱作代理。代理對象可以作為對象(也叫“真正的主體”)的保護者,讓真正的主體對象做盡量少的工作。在代理設計模式中,一個對象充當了另一個對象的接口的角色。 

通常代理和本體的接口應該保持一致性,這樣當不需要代理的時候,用戶可直接訪問本體。 

當我們不方便直接訪問一個對象時,就可以考慮給該對象招一個代理。 

代理可用于:圖片預加載、合并HTTP請求(代理收集一定時間內的所有HTTP請求,然后一次性發給服務器)、惰性加載(通過代理處理和收集一些基本操作,然后僅在真正需要本體的時候才加載本體)、緩存代理(緩存請求結果、計算結果)等

例子1:圖片預加載

 var myImage = (function(){ var imgNode = document.createElement('img'); document.body.appendChild(imgNode); return {  setSrc:function(src){   imgNode.src = src;  } }})();//代理函數var proxyImage = (function(){ var img = new Image; img.onload = function(){  myImage.setSrc(this.src); } return{  setSrc:function(src){   myImage.setSrc('loading.gif');   img.src = src;  } }})();proxyImage.setSrc('show.jpg');

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 太康县| 乌鲁木齐县| 博罗县| 通江县| 青河县| 安庆市| 垦利县| 阳信县| 伊宁县| 遂昌县| 鹤壁市| 开阳县| 山东| 罗平县| 内江市| 宣威市| 泾源县| 桐梓县| 商河县| 方城县| 汉沽区| 游戏| 耒阳市| 五台县| 莲花县| 中江县| 且末县| 海安县| 远安县| 洛南县| 航空| 五莲县| 从江县| 通化县| 九龙城区| 神木县| 朝阳区| 遂平县| 绵竹市| 清原| 朝阳市|