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

SCEASCBCDMCSD

北京天融信软件架构师

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

常年提供架构咨询服务

chaocai2001@yahoo.com.cn 010-82776427

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

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

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

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

设计一:

 

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值