桥接模式
桥接(Bridge)是用于把抽象化与现实化解耦,使得二者可以独立变化,这种类型的设计模式属于结构型模式,它通过提供抽象化和现实化之间的桥接结构,实现二者的解耦。
举个简单的例子
var Fn1 = function(a) {
// dosomething...
}
var Fn2 = function(b) {
// dosomething...
}
var Bridge = function(a, b){
this.one = new Fn1(a)
this.two = new Fn2(b)
}
有实现,首先要有接口,实现必定对应于接口,但是实现并不一定绑定在一个接口上,我们可以通过组合现有接口的方式,去组成一个新的实现,对应新的需求,不必重新定义接口,再重新为新接口写一个实现。
所以接口和实现是可以组合的,这种组合我们称之为桥接模式。主要用在系统开始设计的时候使用。
特点:
- 分离接口和实现部分
- 提供可扩展性
- 实现细节对客户透明,可以对客户隐藏实现细节
缺点:
大量的类将导致开发成本增加,同时在性能方面可能也会有所降低