Welcome

首页 / 软件开发 / 数据结构与算法 / 重温设计模式(二)——桥接模式(Bridge)

重温设计模式(二)——桥接模式(Bridge)2010-04-11 博客园 飞林沙一.从树谈起

基本上所有人都知道树这个概念。

稍微深究.NET本质的人会懂得,.NET有个对象树。

学习ASP.NET的人肯定会知道,Web上有个控件树。

哪怕是只学习过数据结构应付考试的大学生也会知道Tree这个概念。

二.把需求扩展成树

举个我们最常用的Photoshop做例子。

在Photoshop中,有许多图形工具,比如星星,比如方形,再比如圆形等等。

在Photoshop中,不用多说,也有很多种颜色供我们选择。

于是就产生了,红色的星星,绿色的星星。红色的方形,绿色的方形等等。

看看所产生的树:

现在是三种图形,三种颜色,于是我们就一共去声明了九个类,当然我们还不算中间过程中的辅助父类。

如果我们现在是18种图形,12种颜色,那么我们就需要写18*12个类,然后加上12个颜色的类和一个总父类,一共我们需要12*18+12+1=229个类。

让我们记住这个数字。

希望大家不要和我抬杠说,我们可以把颜色写成Color然后动态传入。我们这里是假设并不存在Color这个属性,而需要我们自己去实现。

三.对象爆炸

这个词我已经在两个设计模式中提到了。

在<重温设计模式(一)——享元模式>中,我就用到了这个词。

当然,这里的爆炸并没有上篇文章中的那么恐怖。

但是追寻完美的我们也应该去改善他。

那就让我们开始想办法。