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

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

          BlogJava 聯(lián)系 聚合 管理
            1 Posts :: 196 Stories :: 10 Comments :: 0 Trackbacks
          Gof 的書中指到Bridge模式的目的:「將抽象部份與它的實(shí)現(xiàn)部份分離,使它們都可以獨(dú)立地變化?!?br>
          這句話寫得簡短,這邊再作進(jìn)一步的解釋,抽象部份指的是行為方面定義,實(shí)現(xiàn)方面指的是與特定平臺相依的代碼實(shí)現(xiàn)。

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

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

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

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

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

          posted on 2007-04-17 10:42 張金鵬 閱讀(244) 評論(0)  編輯  收藏 所屬分類: Structural 模式
          主站蜘蛛池模板: 买车| 承德县| 浏阳市| 织金县| 静安区| 沁源县| 奇台县| 磐石市| 丽江市| 斗六市| 琼中| 怀柔区| 敦煌市| 宁南县| 呈贡县| 慈利县| 吉安县| 富裕县| 隆德县| 武功县| 大渡口区| 尼玛县| 洛隆县| 淮阳县| 芮城县| 旬阳县| 徐闻县| 舒兰市| 温州市| 吉隆县| 建瓯市| 三台县| 宣化县| 余干县| 湖南省| 宾阳县| 海口市| 咸丰县| 阳西县| 邵东县| 乐陵市|