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