桥接模式
设计模式源码git地址:design-pattern-src: 设计模式源码 (gitee.com)
这是一个不常用的设计模式,了解核心思想即可
- 什么是桥接模式
- 应用场景
- 场景举例
- Java实现
什么是桥接模式
1、将抽象部分与实体部分分离
2、处理多个独立变化的维度,在抽象层建立关联,其中抽象类作为桥
3、通过构造函数的方式将接口传入实现联系
应用场景
JDBC多种驱动的实现
场景举例
目前有支付方式wx支付与zfb支付,有解锁方式人脸识别与指纹解锁
现需要两种方式结合的方式才能完成付款功能,如何进行实现?
如果采用传统的方式,可得到类图
此时如果加一个云闪付,那么需要增加3个类,增加一个密码解锁需要增加2个类
这个只是最简单的举例,实际业务远比这复杂得多,可以想象到,如果进行扩展,就很容易出现类爆炸的情况,这个时候使用桥接模式,可以很好的应对这种情况
传统方式的源码可以去git查看,这里就不贴了
桥接模式的类图
可以看到解锁抽象类当作桥,用于连接支付接口,扩展十分方便
Java实现
支付接口
1 | public interface IPay { |
wx支付
1 | public class WXPay implements IPay { |
zfb支付
1 | public class ZFBPay implements IPay { |
解锁抽象类
1 | public abstract class PayType { |
人脸解锁
1 | public class FacePay extends PayType { |
指纹解锁
1 | public class FingerPay extends PayType { |
client测试
1 | PayType p = new FacePay(new WXPay()); |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 柠檬大师的空间站!
评论