您好,登錄后才能下訂單哦!
本篇內容主要講解“在什么情況下使用Bridge模式”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“在什么情況下使用Bridge模式”吧!
適用性
以下一些情況使用Bridge模式:
? 你不希望在抽象和它的實現部分之間有一個固定的綁定關系。例如這種情況可能是因為,在程序運行時刻實現部分應可以被選擇或者切換。
一般來講,抽象類定義接口,具象類負責實現,而且實現功能的代碼都是直接寫在對應的方法里,這就是所謂的綁定。橋接模式將實現部分獨立成單獨的類之后,可以簡單地被替換。
? 類的抽象以及它的實現都應該可以通過生成子類的方法加以擴充。這時Bridge
式使你可以對不同的抽象接口和實現部分進行組合,并分別對它們進行擴充。
可以多個接口類使用同一個實現類,也可以一個接口類切換使用多個實現類。
? 對一個抽象的實現部分的修改應對客戶不產生影響,即客戶的代碼不必重新編譯。
可以實現運行時替換實現類的實例,動態改變類的行為。
? (C++)你想對客戶完全隱藏抽象的實現部分。在C++中,類的表示在類接口中是可見的。
很多時候,C++的頭文件或多或少的會存在一些和實現相關的數據成員,使用橋接模式之后這部分內容都被移動到實現類的具象類中,結果上隱藏了實現的細節。
? 正如在意圖一節的第一個類圖中所示的那樣,有許多類要生成。這樣一種類層次結構說明你必須將一個對象分解成兩個部分。 Rumbaugh稱這種類層次結構為“嵌套的普化”(nested generalizations)。
上一篇文章中作者也提到,類的功能出現了排列組合,就說明需要將實現類從接口類中分離出來了。
? 你想在多個對象間共享實現(可能使用引用計數),但同時要求客戶并不知道這一點。
一個簡單的例子便是Coplien的String類[ Cop92 ],在這個類中多個對象可以共享同一個字符串表示(StringRep)。
共享的前提當然首先要將需要共享的部分獨立出來。
到此,相信大家對“在什么情況下使用Bridge模式”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。