2.2 桥接模式

将抽象部分与它的实现部分解耦,使得两者都能够独立变化。

例子: 对于颜色和笔头粗细, 这是不可分割的两种特性, 属于设计不当. 但是毛笔可以将水彩色和笔头粗细两种正交特性分开, 是良好的设计.

角色:

  • 抽象类: 定义抽象接口, 抽象类中有一个实现类接口的指针
  • 实现类接口:抽象定义另外一个维度
  • 扩充抽象类: 定义抽象类实现的接口
  • 具体实现类: 实现了"实现类接口"定义的接口

用户在持有一个抽象类的指针, 使用的时候实例化成一个扩充抽象类, 同时又可以实例化不同的具体实现类, 保证了两个方向的正交性.


桥接模式和适配器模式有什么不同? 在设计的时候使用桥接模式, 但是如果已经有了两个功能完善的类, 那么使用适配器模式.

桥接模式防止 构建抽象层和实现层过度耦合

缺点: 需要在设计的时候考虑到, 于是两者的关系建立在抽象层, 很难让以后的人识别出来

你可能感兴趣的:(2.2 桥接模式)