本文共--字 阅读约--分钟 | 浏览: -- Last Updated: 2021-12-15
桥接模式(Bridge):桥接模式将抽象部分与实现部分分离开来,使两者都可以独立的变化,并且可以一起和谐地工作。抽象部分和实现部分都可以独立的变化而不会互相影响,降低了代码的耦合性,提高了代码的扩展性。
它的优点是把抽象与实现隔离开,有助于独立地管理各组成部分。缺点是每使用一个桥接元素都要增加一次函数调用,这对应用程序的性能会有一些负面影响——提高了系统的复杂程度。
// 场景:画图,绘制圆形和三角形并涂上颜色
class ColorShape {
yellowCircle() {
console.log('黄色圆形');
},
redCircle() {
console.log('红色圆形');
},
yellowTriangle() {
console.log('黄色三角形');
},
redTriangle() {
console.log('红色三角形')
}
}
let cs = new ColorShape();
cs.yellowCircle();
如果使用桥接模式,就是要将画形状和涂色分开。
class Color {
constructor(name) {
this.name = name;
}
}
class Shape {
constructor(name, color) {
this.name = name;
this.color = color;
}
draw() {
console.log(`${this.color.name} ${this.name}`)
}
}
let red = new Color('red');
let yellow = new Color('yellow');
let redCircle = new Shape('circle', red);
redCircle.draw(); // red circle
桥接模式的特性就是“解耦”,先抽象提取公共部分,然后将实现与抽象通过桥接方法链接在一起,来实现解耦。