Skip to content

Latest commit

 

History

History
76 lines (61 loc) · 1.47 KB

11桥接模式.md

File metadata and controls

76 lines (61 loc) · 1.47 KB

桥接模式

又称桥梁模式,将抽象部分与它的实现部分分离,使它们都可以独立的变化。例如黑色手提包、红色钱包的共同抽象部分是包和颜色

解决问题:

  • 抽象和实现分离

优点:

  • 结构清晰
  • 可扩张性

缺点:

  • 增加复杂度

使用场景:

  • 产品多维度
  • 部件复用性强

与其他设计模式的区别:

  • 桥接模式:复用部件。不同部件相互独立,无法替换
  • 策略模式:复用策略。不同策略地位平等,可以互换

代码实现

/* 皮包 */
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()

// 输出:红色公文包

参考

JavaScript 设计模式精讲 - 第三章 17桥接模式