C#物件導向設計模式第八講:Bridge 橋接模式(結構型模式)

來源:互聯網
上載者:User

根據MSDN Webcast相關課程整理)

GoF:將抽象部分與實現部分分離,使它們都可以獨立地變化。

如所示:

顯然,當實現細節b易變時,我們通常考慮採用原型模式來構造系統。然而,當抽象B由於某種原因也容易變動時,即易變對象從兩個維度或更多方向上發生改變,我們就應該考慮橋接模式啦。

:紅藍兩個方面都是易變的,且以紅色部分為主,藍色的Implemetor(還可以擴充到更多變化方向)類以抽象類別的形式組合到主抽象類別Abstraction中,在主實現對象RefinedAbstraction中隔離了對藍色變化對象的具體實現ImplA和ImplB的依賴(下面部分的具體對象不會彼此依賴)。

樣本:在一個需要同時能運行在PC與手機兩個平台的坦克大戰遊戲中,對於坦克類型來說,就存在兩個方向的變化。一方面,坦克有多種不同的類型,另一方面,同一種坦克在兩個平台上運行時的操作方式和繪圖方法也是變化的(不同的)。

坦克抽象類別中“組合”多個方向上的變化,將平台的變化以欄位的形式於以組合,並且使用的是平台的抽象類別,這樣就隔離了具體平台的實現。各個方面上的變化都只依賴於自己體系內部,坦克類型的變化不需要依賴平台,同樣平台的變化,不需要依賴坦克類型。

平時使用的時候多是抽象類別。

《完》

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.