桥接模式的作用在于:将抽象与实现隔离开来,以便于两者独立变化。
示例1 : 事件监听器
应用场合:事件监听器
解决问题:代码仅能在web浏览器的环境下运行,在其他环境下无法通过测试。
说明:一个优良的API,应该和运行环境低耦合。这里的桥接是把回调函数和事件接口分开。
修改前:
addEventListener(element,"click",getSomeInformetion);
function getSomeInformetion(){
asyncRequest('GET','informetionURL',function(){
//直接发起异步请求
......
});
}
修改后:
addEventListener(element,"click",getSomeInformetion);
function getSomeInformetion(){
getWhatINeedUsingABridge(id,function(){
// 桥接函数,方便在非浏览器环境下测试
......
});
}
其他栗子
桥接模式还可以用来:
连接公开的API和私用的代码实现。
把多个类联结在一起。
用桥接模式连接多个类
var class1 = function(a,b,c){
this.a = a;
this.b = b;
this.c = c;
}
var class2 = function(d){
this.d = d;
}
var bridgeClass = function(a,b,c,d){
this.one = new class1(a,b,c);
this.two = new class2(d);
}