一、原理讲解
1.1意图
将抽象部分和实现部分分离,使它们可以独立的变化。(别名:handle/body)
1.2应用场景
- 当你不希望抽象和它的实现部分有一种紧密耦合关系,希望在运行时可以切换不同的实现;
- 类的抽象和实现都可以通过继承子类的方法进行扩充,这时可以选着桥接模式,运用组合方式分别对抽象和实现进行扩充;
- 当你像完全对客户隐藏抽象时,可以使用桥接模式;(继承时,抽象是可见的)
- 当你像抽象有多个扩展,实现也有多个方向扩展时使用。’
1.3结构图(UML图)
![](https://i-blog.csdnimg.cn/blog_migrate/c01bd503011196ec9d84a9dbe67a18a5.png)
1.4代码实现步骤
a1 定义一个抽象接口类Abstraction,抽象接口函数operation();(抽象部分定义接口,实现在具体类中)
a2 定义一个实现接口类Implement,抽象接口函数operation();(抽象部分定义接口,实现在具体类中)
a3 定义一个扩展抽象类RefinedAbstraction : public Abstraction。在类RedefinedAbstraction实现接