蔡
超
SCEA
,
SCBCD
,
MCSD
北京天融信软件架构师
SUN,Microsoft
培训中心特邀高端教师
常年提供架构咨询服务
chaocai2001@yahoo.com.cn
,
010-82776427
很多设计模式的书中都用这样的语言来描述
”
桥模式
”(GOF 95) –
“把抽象与实现分开”(
”Prefactoring”, Ken Pugh,2006
)
,
这样的描述实在有些让人很难体会该模式的精髓。其实在我看来桥模式就是一种面向对象技术中“极度分割”
思想的体现。
下面看一个常见的说明桥模式的例子:
1
一个可以以不同方式输出日志的工具类(输出到文件或控制台):
2
如果此时我们要求可以以多种不同格式来输出日志(如:
XML
和普通文本格式),为了适应这一需求我调整一下类的设计
设计一:
从以上类图可以看出这一设计会产生大量的类,分析其原因可以发现导致这一问题产生的是根类涉及了太多方面,如果这些方面都同时进行扩展就会形成复杂的继承
(
层次较深
)
。如果我们把这些可扩展的不同方面进行分割,就会得到如下设计
以上设计正是传说中的“桥模式”。
经过以上分析我们可看到桥模式本质就是“极度分割”思想的一种体现。