細(xì)心!用心!耐心!

          吾非文人,乃市井一俗人也,讀百卷書,跨江河千里,故申城一游; 一兩滴辛酸,三四年學(xué)業(yè),五六點(diǎn)粗墨,七八筆買賣,九十道人情。

          BlogJava 聯(lián)系 聚合 管理
            1 Posts :: 196 Stories :: 10 Comments :: 0 Trackbacks
          Gof 的書中指到Bridge模式的目的:「將抽象部份與它的實(shí)現(xiàn)部份分離,使它們都可以獨(dú)立地變化。」

          這句話寫得簡(jiǎn)短,這邊再作進(jìn)一步的解釋,抽象部份指的是行為方面定義,實(shí)現(xiàn)方面指的是與特定平臺(tái)相依的代碼實(shí)現(xiàn)。

          一個(gè)實(shí)際的例子在Gof書中有提到,假設(shè)您定義了一個(gè)IWindow介面,這個(gè)介面只定義一些抽象的繪圖行為,而不涉及平臺(tái)的實(shí)作,今天您可以繼承這個(gè)類來(lái)開發(fā)適用於X Window的XWindow類,也可以繼承這個(gè)類來(lái)開發(fā)適用於Windows XP系統(tǒng)的WindowsXP類,為了善用系統(tǒng)資源,您在實(shí)作IWindow介面時(shí),會(huì)將與系統(tǒng)相關(guān)的實(shí)現(xiàn)代碼撰寫在介面的實(shí)作中。
          Bridge

          假設(shè)今天您繼承了IWindow介面撰寫了一個(gè)I3DWindow介面,當(dāng)中擴(kuò)充一個(gè)drawBox()方法用於3D圖形的繪製,簡(jiǎn)單的說(shuō), I3DWindow介面擴(kuò)充了抽象行為,為了讓實(shí)現(xiàn)I3DWindow的類別也能在XWindow與Windows XP兩個(gè)不同的系統(tǒng)中運(yùn)行,您必須再度撰寫與系統(tǒng)相關(guān)的實(shí)現(xiàn)代碼。
          Bridge

          簡(jiǎn)單的說(shuō),抽象行為定義與平臺(tái)相關(guān)實(shí)現(xiàn)混雜在一起了,為了將抽象部份與它的實(shí)現(xiàn)部份分離,使它們都可以獨(dú)立地變化,您可以使用以下的結(jié)構(gòu)。
          Bridge

          在上圖的右邊中,與平臺(tái)相關(guān)的實(shí)現(xiàn)部份,被與右邊抽象行方面的發(fā)展分開了,左邊的抽象部份您可以一直發(fā)展下去,而不再因?yàn)榻壎似脚_(tái)特定實(shí)作方法,而使得整個(gè)結(jié)構(gòu)越來(lái)越失去彈性。

          Bridge模式的 UML 類別結(jié)構(gòu)圖如下:
          Bridge

          posted on 2007-04-17 10:42 張金鵬 閱讀(244) 評(píng)論(0)  編輯  收藏 所屬分類: Structural 模式
          主站蜘蛛池模板: 象州县| 武穴市| 渑池县| 桑日县| 嘉祥县| 肇州县| 东明县| 临西县| 宜都市| 麻栗坡县| 玉环县| 兰考县| 永城市| 三门峡市| 荣昌县| 崇左市| 濮阳县| 辉县市| 遂川县| 兰溪市| 嘉善县| 高尔夫| 湟源县| 三亚市| 大田县| 旅游| 丁青县| 岳西县| 蓝田县| 砀山县| 泽库县| 金坛市| 息烽县| 昌黎县| 大冶市| 花垣县| 敦煌市| 西藏| 旅游| 阿巴嘎旗| 呼图壁县|