“桥模式”与“极限分割”

“桥模式”与“极限分割”

SCEA SCBCD MCSD

北京天融信软件架构师

SUN,Microsoft 培训中心特邀高端教师

常年提供架构咨询服务

[email protected] 010-82776427

很多设计模式的书中都用这样的语言来描述 桥模式 ”(GOF 95) – “把抽象与实现分开”( ”Prefactoring”, Ken Pugh,2006 , 这样的描述实在有些让人很难体会该模式的精髓。其实在我看来桥模式就是一种面向对象技术中“极度分割” 思想的体现。

下面看一个常见的说明桥模式的例子:

1 一个可以以不同方式输出日志的工具类(输出到文件或控制台):

1.jpg

2 如果此时我们要求可以以多种不同格式来输出日志(如: XML 和普通文本格式),为了适应这一需求我调整一下类的设计

设计一:

 

2.jpg

从以上类图可以看出这一设计会产生大量的类,分析其原因可以发现导致这一问题产生的是根类涉及了太多方面,如果这些方面都同时进行扩展就会形成复杂的继承 ( 层次较深 ) 。如果我们把这些可扩展的不同方面进行分割,就会得到如下设计3.jpg

以上设计正是传说中的“桥模式”。

经过以上分析我们可看到桥模式本质就是“极度分割”思想的一种体现。

你可能感兴趣的:(“桥模式”与“极限分割”)