JS 橋接模式

1. 簡介

橋接模式(Bridge)將抽象部分與它的實現部分分離,使它們均可以獨立地變化。
其實就是函數的封裝,好比要對某個DOM元素添加colorbackgroundColor,能夠封裝個changeColor函數,這樣能夠在多個類似邏輯中提高智商...html

2. 實現

有時候在多維的變化中橋接模式更加實用,好比能夠提取多個底層功能模塊,好比提取運動,着色,說話模塊,球類能夠具備運動和着色模塊,人類能夠具備運動和說話模塊,這樣能夠實現模塊的快速組裝,不單單是實現與抽象部分相分離了,而是更進一步功能與抽象相分離,進而 提高逼格 靈活的建立對象。前端

class Speed {            // 運動模塊
  constructor(x, y) {
    this.x = x
    this.y = y
  }
  run() {  console.log(`運動起來 ${this.x} + ${this.y}`)  }
}

class Color {            // 着色模塊
  constructor(cl) {
    this.color = cl
  }
  draw() {  console.log(`繪製顏色 ${this.color}`)  }
}

class Speak {
  constructor(wd) {
    this.word = wd
  }
  say() {  console.log(`說話 ${this.word}`)  }
}

class Ball {                     // 建立球類,能夠着色和運動
  constructor(x, y, cl) {
    this.speed = new Speed(x, y)
    this.color = new Color(cl)
  }
  init() {
    this.speed.run()
    this.color.draw()
  }
}

class Man {                    // 人類,能夠運動和說話
  constructor(x, y, wd) {
    this.speed = new Speed(x, y)
    this.speak = new Speak(wd)
  }
  init() {
    this.speed.run()
    this.speak.say()
  }
}

const man = new Man(1, 2, 'hehe?')
man.init()                                // 運動起來 1 + 2      說話 hehe?

3. 總結

橋接模式的優勢也很明顯,咱們只列舉主要幾個優勢:segmentfault

  • 分離接口和實現部分,一個實現未必不變地綁定在一個接口上,抽象類(函數)的實現能夠在運行時刻進行配置,一個對象甚至能夠在運行時刻改變它的實現,同將抽象和實現也進行了充分的解耦,也有利於分層,從而產生更好的結構化系統。
  • 提升可擴充性
  • 對客戶隱藏實現細節。

同時橋接模式也有本身的缺點:設計模式

  • 大量的類將致使開發成本的增長,同時在性能方面可能也會有所減小。

本文是系列文章,能夠相互參考印證,共同進步~緩存

  1. JS 抽象工廠模式
  2. JS 工廠模式
  3. JS 建造者模式
  4. JS 原型模式
  5. JS 單例模式
  6. JS 回調模式
  7. JS 外觀模式
  8. JS 適配器模式
  9. JS 利用高階函數實現函數緩存(備忘模式)
  10. JS 狀態模式
  11. JS 橋接模式
  12. JS 觀察者模式

網上的帖子大多深淺不一,甚至有些先後矛盾,在下的文章都是學習過程當中的總結,若是發現錯誤,歡迎留言指出~微信

參考:
設計模式之橋接模式
《Javascript 設計模式》 - 張榮銘

PS:歡迎你們關注個人公衆號【前端下午茶】,一塊兒加油吧~函數

另外能夠加入「前端下午茶交流羣」微信羣,長按識別下面二維碼便可加我好友,備註加羣,我拉你入羣~性能

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息