iOS 设计模式浅析 2 - 桥接

866 阅读2分钟

本篇文章主要讲三个点:

      1. 什么是桥接模式.

      2. 桥接模式的优缺点.

      3. demo.

1. 桥接模式

      将抽象部分和实现部分分离, 使他们都可以独立的变化.

      桥接模式的原理: 抽象层和实现层相分离, 抽象层定义了供我们使用的抽象接口, 实现层提供了具体的逻辑, 实现类的引用被封装到了抽象层的实例之中, 即完成了桥接模式.

              

2. 桥接模式的优缺点

优点: 

      ①. 将依赖具体的实现, 改为依赖抽象的实现, 达到解耦合的目的.

      ②. 分离接口和实现部分.

      ③. 提高了扩展性.

缺点: 

      会增加系统的理解与设计难度, 由于聚合关系建立在抽象层, 要求开发者针对抽象进行设计与编程.

3. demo

      正常情况下, 都是一把钥匙开一把锁, 但是有些需求是要用一个万能钥匙给所有锁都打开, 先看一下 demo 的 UML 原理图:

   

      想要用万能钥匙开奥迪和宝马, 先看一下汽车的抽象类, 里面就只有一个抽象方法:

                      

                      

      钥匙抽象类聚合了 Car 类, 并且有两个抽象方法:

                   

      万能钥匙继承自钥匙抽象类, 并且实现了抽象方法:

                           

      FirstCtrl 里面进行了对万能钥匙的调用, 实际上万能钥匙只是改变了汽车的种类, 就像是我们用的万能遥控器, 只是改变要配对的设备, 其余操作相同, 原理其实就是利用了多态啦.

                    

      桥接模式的应用场景还是蛮多的, 发现有个大佬写桥接模式写的蛮好的, 放一个传送门, 我也是处在一个学习阶段, 所以有些观点可能偏浅, 有什么不足之处还望见谅.

这里是 demo 的 传送门, 如果喜欢的话, 大家可以为这篇文章点个 ❤️, 加个关注呦!