bacor

个人站

Coding is important, so is writing


桥梁模式

桥梁模式经常被用来替代继承,重点在于解耦。

定义

将抽象和实现解耦,使得两者可以独立变化。

通用类图如下:

类图中有这么几个角色:
Abstraction抽象化角色定义角色行为并保存一个对实现化角色的引用;
Implementor实现化角色定义角色必须的行为和属性;
RefinedAbstraction修正抽象化角色引用实现化角色对抽象化角色进行修正。
总的来说,抽象角色引用实现角色,部分功能由实现角色完成。

优点

  • 抽象和实现分离

使用场景

  • 不适合使用即成的场景
  • 接口或抽象类不稳定的场景
  • 重用性要求较高的场景

注意事项

和继承相比,桥梁模式主要考虑如何拆分抽象和实现。当有N层继承时,可以考虑使用桥梁模式。

参考:

设计模式之禅