蔡
超
SCEA
,
SCBCD
,
MCSD
北京天融信軟件架構師
SUN,Microsoft
培訓中心特邀高端教師
常年提供架構咨詢服務
chaocai2001@yahoo.com.cn
,
010-82776427
很多設計模式的書中都用這樣的語言來描述
”
橋模式
”(GOF 95) –
“把抽象與實現分開”(
”Prefactoring”, Ken Pugh,2006
)
,
這樣的描述實在有些讓人很難體會該模式的精髓。其實在我看來橋模式就是一種面向對象技術中“極度分割”
思想的體現。
下面看一個常見的說明橋模式的例子:
1
一個可以以不同方式輸出日志的工具類(輸出到文件或控制臺):
2
如果此時我們要求可以以多種不同格式來輸出日志(如:
XML
和普通文本格式),為了適應這一需求我調整一下類的設計
設計一:
?
從以上類圖可以看出這一設計會產生大量的類,分析其原因可以發現導致這一問題產生的是根類涉及了太多方面,如果這些方面都同時進行擴展就會形成復雜的繼承
(
層次較深
)
。如果我們把這些可擴展的不同方面進行分割,就會得到如下設計
以上設計正是傳說中的“橋模式”。
經過以上分析我們可看到橋模式本質就是“極度分割”思想的一種體現。