代理模式

代理模式是为一个对象提供一个代用品或占位符,以便控制对它的访问。代理模式是一种非常有意义的模式,在生活中可以找到很多代理模式的场景。比如,明星都有经纪人作为代理。如果想请明星来办一场商业演出,只能联系他的经纪人。经纪人会把商业演出的细节和报酬都谈好之后,再把合同交给明星签。代理模式的关键是,当客户不方便直接访问一个对象或者不满足需要的时候,提供一个替身对象来控制对这个对象的访问,客户实际上访问的是替身对象。替身对象对请求做出一些处理之后,再把请求转交给本体对象。
如图所示:


不用代理模式

使用代理模式

虚拟代理实现图片预加载

    const myImage = (function(){
      const imgNode = document.createElement('img');
      document.body.appendChild(imgNode);

      return function(src){
        imgNode.src = src;
      }
    })();

    const proxyImage = (function(){
      const img = new Image;

      img.onload = function(){
        myImage(this.src);
      }

      return function(src){
        // 占位图片
        myImage('./demo1.png');

        img.src = src;
      }
    })();

    proxyImage('./demo2.jpg')
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 定义   代理模式是为一个对象提供一个占位符,以便控制对它的访问。 描述   代理模式是一种非常有意义的模式,在生...
    小小的开发人员阅读 362评论 0 1
  • 目录 本文的结构如下: 引言 什么是代理模式 模式的结构 典型代码 代理模式分类 代码示例 代理模式和装饰者模式的...
    w1992wishes阅读 1,602评论 0 13
  • 代理模式是为一个对象提供一个代用品或占位符,以便控制对它的访问。 代理模式是一种非常有意义的模式,在生活中可以找到...
    梅梅_1461阅读 343评论 0 1
  • 代理模式是为对象提供一个占位符或者代用品,以便控制对他的访问。 代理模式在生活中有许多场景,例如明星都有经纪人作为...
    _白羊阅读 320评论 0 0
  • 代理模式是一种非常有意义的模式,在生活中可以找到很多代理模式的场景。比如,明星都有经纪人作为代理。如果想请明星来办...
    ThomasCho阅读 1,333评论 0 0