Bridge Pattern

其背后的philosophy就是所谓的单一职责原则,即:引起类变化的原因只应该有一个。

当类拥有多个可能引起其变化的因子时,把每一个因子抽象成IVarX,分别拥有自己的继承树。

挑取出一个主因子,由其拥有其他的IVarX,即: IVarMain<>------IVarX。

挑选主要因子的依据往往因具体问题而异,无法一概而论。

主因子往往按要解决的问题XXX而命名为IXXX,而次因子则往往命名为IXXXImplementorN。

甭管这种主次关系是如何确定的,一个不能忘记的问题就是:这些因子都来自于同一个概念模型,因此他们往往只有在协同工作的时候才有意义,因此我们使用了<>-----,而非简单的关联-------来强化这种关系。在某些场景下,我们甚至可以使用实心的菱形图素。

该模式实际上避免了因错误使用单棵继承树来表现多个继承关系而带来的类数量的爆炸问题,化M×N为M+N。 

另:

所有的设计模式都是对OO几个基本特性进行应用场景甄别的实践。Bridge模式其实就是甄别出了一个优先使用组合而非继承的场景。

posted @ 2009-06-08 11:22  飞扬跋扈  阅读(181)  评论(1编辑  收藏  举报