桥接
前言:
单看类图很难看得出桥接所带来的好处。
但桥接在正确的场合,桥接能发挥出很高的代码复用,及比较好的代码扩展。
分析:
对桥接的理解要基于对“继承”这个概念的理解。
相同的继承,在不同场合,其设计目的并不相同。总的来说,继承有个作用:
1、实现对父类方法数目的扩展,并追加更多方法。
2、实现对父类申明方法的覆写或具体化,这个尤其表现在对抽象类的继承上。
这里,我把作用1简称为“扩展”,把作用2简称为“实现”。
具体到桥接模式:
为了实现对“抽象实现”的可复用,以及为“抽象的扩展”提供统一的接口。
把抽象的实现部分与对抽象的扩展部分分离开来,并各自己实现自己的抽象类。
并用依赖的方式把顶层抽象类(接口)“桥接”起来。
从类图上看,桥接模式两个的实现模式基本相同,整个类图看上去像一个座对称的小桥。但其实两边抽象的目的并不相同,理解这一点应该就能比较灵活地应用这个模式了。