意圖:將抽象部分與它的實(shí)現(xiàn)部分分離,使它們都可以獨(dú)立的變化適用:你不希望在抽象和它的實(shí)現(xiàn)部分之間有一個(gè)固定的綁定關(guān)系。例如這種情況可能是因?yàn)椋诔绦蜻\(yùn)行時(shí)刻實(shí)現(xiàn)部分應(yīng)可以被選擇或是切換類的抽象以及它的實(shí)現(xiàn)都應(yīng)該可以通過(guò)生成子類的方法加以擴(kuò)充。這時(shí)Bridge模式使你可以對(duì)不同的抽象接口和實(shí)現(xiàn)部分進(jìn)行組合,并分別對(duì)他們進(jìn)行擴(kuò)充對(duì)一個(gè)抽象的實(shí)現(xiàn)部分的修改應(yīng)對(duì)客戶不產(chǎn)生影響,即客戶的代碼不必重新編譯你相對(duì)客戶完全隱藏抽象的實(shí)現(xiàn)部分有許多類要生成,這樣一種類層次結(jié)構(gòu)說(shuō)明你必須將一個(gè)對(duì)象分解成兩個(gè)部分你想在多個(gè)對(duì)象間共享實(shí)現(xiàn),但同時(shí)要求客戶并不知道這一點(diǎn),一個(gè)簡(jiǎn)單的例子便是String類UML圖解析:Bridge的實(shí)現(xiàn)方式跟Builde十分相似,只是封裝的東西不同。Builder封裝了不同的生成部分(構(gòu)造)idge封裝了不同的實(shí)現(xiàn)方式(函數(shù))