成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JS 橋接模式

chemzqm / 1128人閱讀

摘要:簡介橋接模式將抽象部分與它的實現(xiàn)部分分離,使它們都可以獨立地變化。同時橋接模式也有自己的缺點大量的類將導(dǎo)致開發(fā)成本的增加,同時在性能方面可能也會有所減少。

1. 簡介

橋接模式(Bridge)將抽象部分與它的實現(xiàn)部分分離,使它們都可以獨立地變化。
其實就是函數(shù)的封裝,比如要對某個DOM元素添加colorbackgroundColor,可以封裝個changeColor函數(shù),這樣可以在多個相似邏輯中提升智商...

2. 實現(xiàn)

有時候在多維的變化中橋接模式更加實用,比如可以提取多個底層功能模塊,比如提取運動,著色,說話模塊,球類可以具有運動和著色模塊,人類可以具有運動和說話模塊,這樣可以實現(xiàn)模塊的快速組裝,不僅僅是實現(xiàn)與抽象部分相分離了,而是更進(jìn)一步功能與抽象相分離,進(jìn)而 提升逼格 靈活的創(chuàng)建對象。

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 {                     // 創(chuàng)建球類,可以著色和運動
  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. 總結(jié)

橋接模式的優(yōu)點也很明顯,我們只列舉主要幾個優(yōu)點:

分離接口和實現(xiàn)部分,一個實現(xiàn)未必不變地綁定在一個接口上,抽象類(函數(shù))的實現(xiàn)可以在運行時刻進(jìn)行配置,一個對象甚至可以在運行時刻改變它的實現(xiàn),同將抽象和實現(xiàn)也進(jìn)行了充分的解耦,也有利于分層,從而產(chǎn)生更好的結(jié)構(gòu)化系統(tǒng)。

提高可擴(kuò)充性

對客戶隱藏實現(xiàn)細(xì)節(jié)。

同時橋接模式也有自己的缺點:

大量的類將導(dǎo)致開發(fā)成本的增加,同時在性能方面可能也會有所減少。

本文是系列文章,可以相互參考印證,共同進(jìn)步~

JS 抽象工廠模式

JS 工廠模式

JS 建造者模式

JS 原型模式

JS 單例模式

JS 回調(diào)模式

JS 外觀模式

JS 適配器模式

JS 利用高階函數(shù)實現(xiàn)函數(shù)緩存(備忘模式)

JS 狀態(tài)模式

JS 橋接模式

JS 觀察者模式

網(wǎng)上的帖子大多深淺不一,甚至有些前后矛盾,在下的文章都是學(xué)習(xí)過程中的總結(jié),如果發(fā)現(xiàn)錯誤,歡迎留言指出~

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

PS:歡迎大家關(guān)注我的公眾號【前端下午茶】,一起加油吧~

另外可以加入「前端下午茶交流群」微信群,長按識別下面二維碼即可加我好友,備注加群,我拉你入群~

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/90349.html

相關(guān)文章

  • js設(shè)計模式 --- 橋接設(shè)計模式

    摘要:他們兩個互相獨立,不會影響到對方對于兩個獨立變化的維度,使用橋接模式再適合不過了。 橋接設(shè)計模式 橋接設(shè)計模式是許多其他設(shè)計模式的基礎(chǔ),比如裝飾模式, 代理模式都或多或少看到他的影子, 在面向?qū)ο笤O(shè)計中最重要的一個特點就是繼承, 然而作為拓展類的功能的方式有兩種 -- 繼承和橋接, 橋接用我簡單的理解就是放棄使用繼承的方式拓展類, 而是采用包含另一個具有一定功能的對象來拓展類, 下面來...

    jsdt 評論0 收藏0
  • 一個例子了解什么是橋接模式

    摘要:更多前端技術(shù)和知識點,搜索訂閱號菌訂閱橋接模式實際上就是將邏輯抽象和具體的實現(xiàn)分離。以追加字符串到文件中為例代碼從變?yōu)樯厦娲a是讀取某個文件并在文件中追加字符串,最后調(diào)用回調(diào)函數(shù)。請關(guān)注我的訂閱號,不定期推送有關(guān)的技術(shù)文章,只談技術(shù)不談八卦 showImg(https://segmentfault.com/img/remote/1460000020002974?w=640&h=426)...

    muzhuyu 評論0 收藏0
  • 橋接&組合

    摘要:橋接實現(xiàn)的時候橋接模式非常有用可能正是由于這個該模式使用地不夠廣泛在設(shè)計時該模式可以弱化與使用它的類和對象之間的耦合該模式的作用在于將抽象與其實現(xiàn)隔離開讓他們獨立變化而且對于事件驅(qū)動編程有許多好處有以及其他基于動作的方法無論它們是用來創(chuàng)建鼓 橋接 實現(xiàn) API 的時候,橋接模式非常有用,可能正是由于這個,該模式使用地不夠廣泛.在設(shè)計 js API 時,該模式可以弱化API 與使用它的類...

    yuanxin 評論0 收藏0
  • JS 適配器模式

    摘要:另外,適配器模式和其它幾個模式可能容易讓人迷惑,這里說一下大概的區(qū)別適配器和橋接模式雖然類似,但橋接的出發(fā)點不同,橋接的目的是將接口部分和實現(xiàn)部分分離,從而對他們可以更為容易也相對獨立的加以改變。 1. 簡介 適配器模式(Adapter)是將一個類(對象)的接口(方法或?qū)傩裕┺D(zhuǎn)化成客戶希望的另外一個接口(方法或?qū)傩裕m配器模式使得原本由于接口不兼容而不能一起工作的那些類(對象)可以一...

    Jeffrrey 評論0 收藏0
  • 設(shè)計模式橋接模式

    摘要:橋接模式中的所謂脫耦,就是指在一個軟件系統(tǒng)的抽象化和實現(xiàn)化之間使用關(guān)聯(lián)關(guān)系組合或者聚合關(guān)系而不是繼承關(guān)系,從而使兩者可以相對獨立地變化,這就是橋接模式的用意。 0x01.定義與類型 定義:將抽象部分與它的具體實現(xiàn)部分分離,使它們都可以獨立地變化。 橋接模式將繼承關(guān)系轉(zhuǎn)化成關(guān)聯(lián)關(guān)系,它降低了類與類之間的耦合度,減少了系統(tǒng)中類的數(shù)量,也減少了代碼量。 橋接模式中的所謂脫耦,就是指在一個軟...

    kycool 評論0 收藏0

發(fā)表評論

0條評論

chemzqm

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<