本篇文章主要讲三个点:
1. 什么是桥接模式.
2. 桥接模式的优缺点.
3. demo.
1. 桥接模式
将抽象部分和实现部分分离, 使他们都可以独立的变化.
桥接模式的原理: 抽象层和实现层相分离, 抽象层定义了供我们使用的抽象接口, 实现层提供了具体的逻辑, 实现类的引用被封装到了抽象层的实例之中, 即完成了桥接模式.
2. 桥接模式的优缺点
优点:
①. 将依赖具体的实现, 改为依赖抽象的实现, 达到解耦合的目的.
②. 分离接口和实现部分.
③. 提高了扩展性.
缺点:
会增加系统的理解与设计难度, 由于聚合关系建立在抽象层, 要求开发者针对抽象进行设计与编程.
3. demo
正常情况下, 都是一把钥匙开一把锁, 但是有些需求是要用一个万能钥匙给所有锁都打开, 先看一下 demo 的 UML 原理图:
想要用万能钥匙开奥迪和宝马, 先看一下汽车的抽象类, 里面就只有一个抽象方法:
钥匙抽象类聚合了 Car 类, 并且有两个抽象方法:
万能钥匙继承自钥匙抽象类, 并且实现了抽象方法:
FirstCtrl 里面进行了对万能钥匙的调用, 实际上万能钥匙只是改变了汽车的种类, 就像是我们用的万能遥控器, 只是改变要配对的设备, 其余操作相同, 原理其实就是利用了多态啦.
桥接模式的应用场景还是蛮多的, 发现有个大佬写桥接模式写的蛮好的, 放一个, 我也是处在一个学习阶段, 所以有些观点可能偏浅, 有什么不足之处还望见谅.
这里是 demo 的 , 如果喜欢的话, 大家可以为这篇文章点个 ❤️, 加个关注呦!