“四人帮”的《设计模式》里的桥接(BRIDGE)模式也看过几篇,但总是感觉用处不大,觉得这个模式有点多此一举的意思,不能理解什么时候应该用这个模式。最近又看了一下, 有点顿悟的感觉,拿出来和大家分享一下我对这个设计模式的认识,主要是什么情况下该用。
桥接模式里有imp指针,有点像C++里的imp惯用法。Imp是为了接口和实现分离。注意看《设计模式》桥接模式的那个类图,我认为左边表示的是要做什么东西 ,右边表示的是怎么做 ,这样就分离的很好,如果觉得这个实现做的不好,就增加一种实现方式,也就是继承一个新的子类,而左边是做什么的问题,如果要扩展,也很容易。
所以桥接模式我认为应该用在这样的场景:有几个对象是有更基本的一些元素以不同的方式组成的,每类对象需要的元素不太一样,可能是有些交集;而这些元素是一套东西,可以有不同风格和方式的实现,属于比较灵活的一部分。在这样的情况下如果使用桥接模式,那么系统就有很好的可扩展性。