又称桥梁模式,将抽象部分与它的实现部分分离,使它们都可以独立的变化。例如黑色手提包、红色钱包的共同抽象部分是包和颜色
解决问题:
- 抽象和实现分离
优点:
- 结构清晰
- 可扩张性
缺点:
- 增加复杂度
使用场景:
- 产品多维度
- 部件复用性强
与其他设计模式的区别:
- 桥接模式:复用部件。不同部件相互独立,无法替换
- 策略模式:复用策略。不同策略地位平等,可以互换
/* 皮包 */
class Bag {
constructor(type, color) {
this.type = type
this.color = color
}
/* 展示 */
show() {
console.log(
this.color.show() + this.type.show()
)
}
}
/* 皮包类型 */
class Type {
constructor(type) {
this.typeType = type
}
show() {
return this.typeType
}
}
/* 皮包颜色 */
class Color {
constructor(type) {
this.colorType = type
}
show() {
return this.colorType
}
}
/* 抽象实例化 */
const redColor = new Color('红色')
const walletType = new Type('钱包')
const briefcaseType = new Type('公文包')
const bagA = new Bag(walletType, redColor)
bagA.show()
// 输出:红色钱包
const bagB = new Bag(briefcaseType, redColor)
bagB.show()
// 输出:红色公文包