设计模式深入浅出--13.桥接模式及其在JDK中的应用

本文深入讲解桥接模式的定义、适用场景及优缺点,通过实例演示如何在不同银行与账号类型的场景下应用此模式,提高系统扩展性和灵活性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

桥接模式

定义:

将抽象部分与他的具体实现部分分离,使它们都可以独立地变化

通过组合的方式建立两个类之间联系,而不是继承

类型:结构型 

适用场景:

抽象和具体实现之间增加更多的灵活性

一个类存在两个(或多个)独立变化的维度,且这两个(或多个)维度都需要独立进行扩展

不希望使用继承,或因为多层继承导致系统类的个数剧增

优点:

分离抽象部分及其具体实现部分

提高了系统的可扩展性

符合开闭原则

符合合成复用原则

缺点:

增加了系统的理解与设计难度

需要正确地识别出系统中两个独立变化的维度

相关设计模式:

桥接模式和组合模式

桥接模式和适配器模式

coding

业务场景:现在有很多银行:例如:中国工商银行(ICBC)、中国农业银行(ABC),我们的账号可以分为定期账号和活期账号,这样的话,我们交叉一下可以看到就有四种组合,如果随着银行数量的增加以及账号类型的增加我们需要的类型就会越来越多。

创建Account接口

 创建DepositAccount类(定期账号)实现Account接口

 创建SavingAccount类(活期账号)实现Account接口

 创建Bank抽象类

创建ABCBank类继承Bank抽象类

创建ICBCBank类继承Bank抽象类

当前UML类图

创建Test类

运行:

这里虽然实现了调用但是其实并没有打开账号,只是在银行这边创建了账号而已,所以需要做如下修改

在银行这里进行委托调用

再次运行:

 在JDK中的应用

在DriverManager中

DriverInfo本身其实就是Driver

而Driver 接口对外可以被其他类实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值