“橋模式”與“極限分割”

SCEASCBCDMCSD

北京天融信軟件架構師

SUN,Microsoft培訓中心特邀高端教師

常年提供架構諮詢服務

[email protected] 010-82776427

很多設計模式的書中都用這樣的語言來描述橋模式”(GOF 95) –“把抽象與實現分開”(”Prefactoring”, Ken Pugh,2006,這樣的描述實在有些讓人很難體會該模式的精髓。其實在我看來橋模式就是一種面向對象技術中“極度分割” 思想的體現。

下面看一個常見的說明橋模式的例子:

1 一個可以以不同方式輸出日誌的工具類(輸出到文件或控制檯):

2 如果此時我們要求可以以多種不同格式來輸出日誌(如:XML和普通文本格式),爲了適應這一需求我調整一下類的設計

設計一:

 

從以上類圖可以看出這一設計會產生大量的類,分析其原因可以發現導致這一問題產生的是根類涉及了太多方面,如果這些方面都同時進行擴展就會形成複雜的繼承(層次較深)。如果我們把這些可擴展的不同方面進行分割,就會得到如下設計

以上設計正是傳說中的“橋模式”。

經過以上分析我們可看到橋模式本質就是“極度分割”思想的一種體現。

發佈了38 篇原創文章 · 獲贊 7 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章