javaScript设计模式系列(五) 桥接模式

前言

桥接模式可以用来降低,类和对象之间的耦合度。这个模式也尝尝与其他模式混合使用,所以本文只是举一个单纯啊的桥接模式的例子,综合使用以后会逐步的讲解。

正文

GoF的定义,桥接模式的作用在于将“抽象与其实现隔离开来,以便二者独立的变化”。

现看一个简单的例子,在解释下我对这句画的理解。

现在想要在动物园的查询中心,点击一个动物的图标,就可以查询这个动物的信息。

//点击某个动物的图标
someAnimalIcon.onclick = function(){
  var id = this.id;
  //自定义的一个发起请求的方法,使用到这动物的id
  asynRequest("GET",'zoom.url?id='+id,function(req){
    console.log(req)
  })
}

看起来这个逻辑很完美,但是很容发现,我们只能在浏览器中使用这个方法,因为他被绑定在一个点击事件下,并在点击后获取并使用点击元素的id,可是我们希望任何时候懂可以使用这个方法获取动物的信息,而且如果想做测试的时候,或是在非浏览器环境中运行,那只能祝你好运了,所以这样修改看上去更加的合理。

function getAnimalInfo(id,callback){
    asynRequest("GET",'zoom.url?id='+id,function(req){
      callback(req);
    })
}
function getAnimalInfoBridge(e){
  var id = this.id;
  getAnimalInfo(id,function(AnimalInfo){
     console.log(AnimalInfo);
  })
}
someAnimalIcon.onclick = getAnimalInfoBridge;

最后解释一下最开始的那句话:抽象与其实现隔离开来,以便二者独立的变化。

个人的简单理解是,简单想一下,你在浏览器端写的一个方法,如果不依赖浏览器端的操作(比如给定一个id,而不是获取id后在执行),是否可以执行,如果可以,其实就是实现(方法),抽象(触发条件)已经隔离开。

转载于:https://my.oschina.net/u/3238663/blog/1486247

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值