js设计模式之代理模式及订阅发布模式的示例分析

这篇文章将为大家详细讲解有关js设计模式之代理模式及订阅发布模式的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名注册网站空间、营销软件、网站建设、崇信网站维护、网站推广。

1,代理模式,只是学习了虚拟代理以及缓存代理,具体案例

1)虚拟代理

//业务代码
var myImage = (function() {
    var imgNode = document.createElement("img");
    document.body.appendChild(imgNode);
    return {
      setSrc: function(src) {
        console.log(1111);
        imgNode.src = src;
      }
    }
})();
// 设计模式代码
var ProxyImage = (function() {
    var img = new Image();
    //这个img只是用来判断图片是否加载完成,加载完成之后修改图片链接
    img.onload = function() {
      console.log(this);
      myImage.setSrc(this.src);
    };
    return {
      setSrc: function(src) {
        console.log(22);
        myImage.setSrc("http://img.lanrentuku.com/img/allimg/1212/5-121204193Q9-50.gif");
        img.src = src;
      }
    }
})();

这个例子好吧,拿来主义。说一下自己的理解:上面的业务代码实现的是将一个图片dom插入到dom树之中,代理模式则是通过创建一个新的img元素,通过判断onload判断是否加载完成,然后替换原有链接。

2)下面是缓存代理:

运行结果:

js设计模式之代理模式及订阅发布模式的示例分析

就是利用闭包实现原有计算数据的缓存。

2,订阅发布模式

运行结果:

js设计模式之代理模式及订阅发布模式的示例分析

本质上,上述的发布订阅只是一个数组的增删改查。缓存下增删改查。

关于“js设计模式之代理模式及订阅发布模式的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。


网站名称:js设计模式之代理模式及订阅发布模式的示例分析
本文来源:http://pwwzsj.com/article/jjccpc.html