設(shè)計(jì)模式:橋接模式

0x01 背景

當(dāng)一個(gè)類存在一個(gè)(或多個(gè))變化的維度時(shí)郭计,如果采用繼承的方式來(lái)定義不同的實(shí)現(xiàn),會(huì)導(dǎo)致實(shí)現(xiàn)類數(shù)量呈指數(shù)爆炸播聪,比如對(duì)于畫布來(lái)說(shuō)朽基,形狀上有三種:正方形、長(zhǎng)方形离陶、圓形稼虎,顏色上有三種顏色:紅色,藍(lán)色招刨、綠色霎俩。一共有3 * 3 =9種畫布,如果采用繼承的方式來(lái)實(shí)現(xiàn)具體的畫布類,則有9種畫布類打却,而且每添加一種形狀(如橢圓)畫布杉适,需要實(shí)現(xiàn)所有顏色的橢圓形畫布類,類似的每添加一種顏色柳击,就需要實(shí)現(xiàn)該顏色的所有形狀的畫布類淘衙,這樣會(huì)導(dǎo)致類個(gè)數(shù)的指數(shù)爆炸。橋接模式就是為了這樣的問(wèn)題腻暮。

0x02 橋接模式
  1. 將抽象和實(shí)現(xiàn)解耦彤守,讓他們可以獨(dú)立變化
  2. 一個(gè)類存在兩個(gè)(或多個(gè))獨(dú)立變化的維度,我們可以通過(guò)組合的方式哭靖,讓這兩個(gè)(或多個(gè))維度可以獨(dú)立進(jìn)行擴(kuò)展
  3. 通過(guò)組合關(guān)系代替繼承關(guān)系具垫,避免繼承層次的指數(shù)級(jí)爆炸。

橋接模式遵循“組合優(yōu)于繼承”的設(shè)計(jì)原則

2.1 橋接模式的UML類圖
image.png

橋接模式將形狀和顏色這兩個(gè)不同的變化維度拆分開:AbstractShap(抽象類)和Color(接口)试幽,讓這兩種維度獨(dú)立變化筝蚕,然后通過(guò)組合的方式將這兩種維度組合在一起,所以最終類的個(gè)數(shù)只有:形狀個(gè)數(shù) + 顏色個(gè)數(shù)铺坞。

2.2 橋接模式的應(yīng)用場(chǎng)景

當(dāng)一個(gè)類存在兩個(gè)(或多個(gè))獨(dú)立變化的維度時(shí)起宽,可以將兩個(gè)(或多個(gè))維度拆分開獨(dú)立變化,然后通過(guò)組合的方式進(jìn)行擴(kuò)展济榨。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末坯沪,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子擒滑,更是在濱河造成了極大的恐慌腐晾,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件丐一,死亡現(xiàn)場(chǎng)離奇詭異藻糖,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)库车,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門巨柒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人柠衍,你說(shuō)我怎么就攤上這事洋满。” “怎么了拧略?”我有些...
    開封第一講書人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵芦岂,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我垫蛆,道長(zhǎng)禽最,這世上最難降的妖魔是什么腺怯? 我笑而不...
    開封第一講書人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮川无,結(jié)果婚禮上呛占,老公的妹妹穿的比我還像新娘。我一直安慰自己懦趋,他們只是感情好晾虑,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著仅叫,像睡著了一般帜篇。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上诫咱,一...
    開封第一講書人閱讀 51,208評(píng)論 1 299
  • 那天笙隙,我揣著相機(jī)與錄音,去河邊找鬼坎缭。 笑死竟痰,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的掏呼。 我是一名探鬼主播坏快,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼憎夷!你這毒婦竟也來(lái)了莽鸿?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤岭接,失蹤者是張志新(化名)和其女友劉穎富拗,沒(méi)想到半個(gè)月后臼予,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鸣戴,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年粘拾,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了窄锅。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡缰雇,死狀恐怖入偷,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情械哟,我是刑警寧澤疏之,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站暇咆,受9級(jí)特大地震影響锋爪,放射性物質(zhì)發(fā)生泄漏丙曙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一其骄、第九天 我趴在偏房一處隱蔽的房頂上張望亏镰。 院中可真熱鬧,春花似錦拯爽、人聲如沸索抓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)逼肯。三九已至,卻和暖如春桃煎,著一層夾襖步出監(jiān)牢的瞬間汉矿,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工备禀, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留洲拇,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓曲尸,卻偏偏與公主長(zhǎng)得像赋续,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子另患,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 一纽乱、橋接模式(Bridge Pattern) 在現(xiàn)實(shí)生活中,某些類具有兩個(gè)或多個(gè)維度的變化昆箕,如圖形既可按形狀分鸦列,又...
    dongrui100閱讀 532評(píng)論 0 0
  • 橋接模式(Bridge) 在現(xiàn)實(shí)生活中,某些類具有兩個(gè)或多個(gè)維度的變化鹏倘,如圖形既可按形狀分薯嗤,又可按顏色分。如何設(shè)計(jì)...
    Acton_zhang閱讀 419評(píng)論 0 1
  • 引言 ??咋一看這個(gè)模式纤泵,看的一頭懵逼骆姐,純概念很來(lái)理解。舉個(gè)例子吧 就像一座橋捏题,鏈接兩端玻褪。先回顧上一節(jié)的裝飾模式,...
    天道__閱讀 2,061評(píng)論 0 2
  • ??注意:如果不想浪費(fèi)時(shí)間公荧,請(qǐng)一定要點(diǎn)我带射。 ??在現(xiàn)實(shí)生活中,有些類具有多個(gè)維度的變化循狰,比如圖形既可以按照形狀劃分...
    布魯斯理閱讀 1,004評(píng)論 0 1
  • 橋接模式(Bridge Pattern):將抽象部分與它的實(shí)現(xiàn)部分分離窟社,使它們都可以獨(dú)立地變化捻浦。它是一種對(duì)象結(jié)構(gòu)型...
    _muggle閱讀 234評(píng)論 0 0