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/deoojc.html