码迷,mamicode.com
首页 > Web开发 > 详细

js设计模式——桥接模式

时间:2015-08-28 17:02:11      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:


 

定义:将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化。

 

常用场景:在js中,桥接模式常用于事件监听器和ajax请求的解耦,以便于进行单元测试

 


 

 

举个栗子

    普通方法。

var btn=$(‘#btn‘);
btn.on(‘click‘,function () {
  $.ajax({
    url:‘test.html‘,
    data:{
      id:this.id
    },
    dataType:‘html‘,
    success:function(data){
      console.log(data);
    }
  });
})

技术分享

在上面的代码中,鼠标点击按钮元素获取元素的id值,并将id值作为ajax请求的参数,发送到服务器。

可以看到,click事件和ajax请求紧密的联系起来了,这样的话ajax请求就无法进行单元测试,必须通过点击按钮事件来测试ajax请求的正确性。

 

    桥接模式

var btn=$(‘#btn‘);
btn.on(‘click‘,function () {
  bridge(this.id);
})
function bridge(id){
  $.ajax({
    url:‘test.html‘,
    data:{
      id:id
    },
    dataType:‘html‘,
    success:function(data){
      console.log(data);
    }
  });
}

技术分享

在桥接模式中,ajax请求不再依赖click事件,而是bridge函数,相当于在click事件和ajax请求中增加一座桥即bridge函数,

这样就实现了click事件和ajax请求的解耦,从而进行单元测试时不再需要一次次的回到浏览器点击按钮了!~~


 

js设计模式——桥接模式

标签:

原文地址:http://www.cnblogs.com/byronvis/p/4766735.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!