A.你想使用一個已經(jīng)存在的類,而它的接口不符合你的需求 B.你想表示對象的部分-整體層次結(jié)構(gòu) C.當一個類的實例只能有幾個不同狀態(tài)組合中的一種時 D.一個對象的行為取決于它的狀態(tài),并且它必須在運行時刻根據(jù)狀態(tài)改變它的行為
A.你不希望在抽象和它的實現(xiàn)部分之間有一個固定的綁定關(guān)系。例如這種情況可能是因為,在程序運行時刻實現(xiàn)部分應可以被選擇或者切換 B.類的抽象以及它的實現(xiàn)都應該可以通過生成子類的方法加以擴充。這時Bridge模式使你可以對不同的抽象接口和實現(xiàn)部分進行組合,并分別對它們進行擴充 C.對一個抽象的實現(xiàn)部分的修改應對客戶不產(chǎn)生影響,即客戶的代碼不必重新編譯 D.客戶程序與抽象類的實現(xiàn)部分之間存在著很大的依賴性
A.你想使用一個已經(jīng)存在的類,而它的接口不符合你的需求 B.你想創(chuàng)建一個可以復用的類,該類可以與其他不相關(guān)的類或不可預見的類(即那些接口可能不一定兼容的類)協(xié)同工作 C.你想使用一些已經(jīng)存在的子類,但是不可能對每一個都進行子類化以匹配它們的接口。對象適配器可以適配它的父類接口 D.如果刪除對象的外部狀態(tài),那么可以用相對較少的共享對象取代很多組對象