橋接模式 Bridge

2021-09-25 19:43:46 字數 2659 閱讀 3751

三、橋接模式的uml圖

本文通過簡潔的模式描述,應用場景的詳細**實現,以及匹配的uml,詳解介紹了橋接模式的原理及應用。本文可幫助讀者快速掌握橋接模式,以便工作學習中使用橋接模式。

在我們的生活中,乙個物體所擁有的功能常常是多樣的,比如廚師tom會做紅燒魚,會做獅子頭,而他兩年之後又會做小龍蝦,所以廚師tom的烹飪功能在不斷的變化。

程式如同生活,乙個物件擁有的方法也是不斷變化的,現要實現廚師tom類的cooking()方法,需要實現紅燒魚方法、獅子頭方法,兩年之後還要重構廚師tom類,增加小龍蝦方法。由此可見違背了「開閉原則」。同時,若需要乙個廚師damon,他也會做紅燒魚、獅子頭、小龍蝦,那麼又得拷貝乙份**,這樣我們的**重用性很低。

橋接模式為上面的問題提供了一種解決方式。橋接模式將抽象行為和具體實行進行分離,需要時進行組裝即可。對於如上問題,將廚師tom會的具體烹飪方法分離出來單獨成立乙個紅燒魚類、獅子頭類、小龍蝦類。由此可見廚師tom的烹飪方法增加,不會再去更改源**,而是新擴充套件乙個功能類,這樣就達到了「開閉原則」。

現有kfc和麥當勞兩家餐飲店,兩家餐飲店都會做漢堡、薯條,漢堡又分為牛肉漢堡、雞肉漢堡,薯條分為番茄薯條、辣薯條。

借鑑橋接模式的思想,將牛肉漢堡、雞肉漢堡、番茄薯條、辣薯條都單獨封裝成類。若麥當勞製作牛肉漢堡時,只需要將牛肉漢堡類傳給麥當勞類,並呼叫麥當勞類的通用方法cookinghamburger()即可,其他烹飪操作類似。

橋接模式(Bridge)

個人理解 橋接模式的精髓在於維護乙個抽象物件,並抽取這個物件的抽象部分。uml類圖 實現 public inte ce icomponent public class componenta icomponent public class componentb icomponent public ab...

Bridge橋接模式

include using namespace std bridge橋接模式。class base class son1 public base 這是基類具體方法實現。class son2 public base 如果此時有了新的模組加入,或者說要實現基類的另外一些 方法,我們在這裡只需要重新建造乙...

Bridge 橋接模式

物件和行為自由組合。當不同的物件具有多種可列舉的行為,且不同行為的物件可被描述為不同的具體的物件,不同的行為與物件結合將產生大量具有差異性具體物件,為了防止對這些具體物件的列舉,將差異性的行為與物件本身分離出來。比如遊戲裡面的英雄的裝備與動作 描述不同汽車的行為 汽 油 電等不同發動機的執行方式,見...