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