Bridge模式的定義是:將抽象和實(shí)現(xiàn)解耦。
這個(gè)定義是最讓人費(fèi)解的,抽象和實(shí)現(xiàn)解耦和Bridge有什么關(guān)系,特別是UML的圖形給出來的時(shí)候更讓我感覺到這個(gè)定義的匪夷所思。
下面來舉個(gè)例子吧:
我很久前遇到的問題就是:寫一個(gè)系統(tǒng),當(dāng)輸入可能內(nèi)存、文件.....而輸出可能是內(nèi)存、文件等等的時(shí)候。如果按照C接口的定義方式,你可能要做一下的定義。
MemToMem()
MemToFile()
FileToMem()
FileToFile()
一下就要定義2x2的接口,而如果在增加一個(gè)輸入,那么就是2x3的接口,再增加同樣的輸出就是3x3的接口。
如果在C++里面,就是有雙重的集成關(guān)系,首先是基類,然后是n中輸入類,再來就是n^2個(gè)輸出類。
所以Bridge模式要解決的就是這種變化關(guān)系。
Bridge模式的思想就是將n個(gè)輸入類和n個(gè)輸出類解耦(抽象和實(shí)現(xiàn)接口)讓他們分別依賴自己的基類,而最終通過組合的方式讓兩者分離。
簡(jiǎn)單的代碼













































ps.此文檔之作為技術(shù)的隨筆,供以后搜索,如果疑問概不回答。