javascript设计模式(代理模式)

面向对象设计原则又称单一功能原则,面向对象五个基本原则(SOLID)之一。它规定一个类应该只有一个发生变化的原因。所谓职责是指类变化的原因。如果一个类有多于一个的动机被改变,那么这个类就具有多于一个的职责。而单一职责原则就是指一个类或者模块应该有且只有一个改变的原因。

代理模式的关键是,当客户不方便直接访问一个本体对象或者不满足需要的时候,提供一个替身对象来控制对这个对象的访问,客户实际上访问的是替身对象。替身对象对请求做出一些处理之后,再把请求转交给本体对象。

代理可用于:图片预加载

var setImage = (function(){
    var imgNode = document.createElement('img');
    document.body.appendChild(imgNode);
    return {
        setImgSrc:function(src){
            imgNode.src = src;
        }
    }
})();
//代理函数
var proxyFn = (function(){
    var img = new Image;
    img.onload = function(){
        setImage .setImgSrc(this.src);
    }
    return{
        setImgSrc:function(src){
            setImage .setImgSrc('loading.gif');
            img.src = src;
        }
    }
})();

proxyFn .setImgSrc('test.jpg');

猜你喜欢

转载自www.cnblogs.com/xingxingclassroom/p/11359176.html
今日推荐