随笔-面试问题:项目需要同时兼顾mysql和oracle,请在设计模式的观点上说一下怎么操作的?

适配器模式是一种设计模式,旨在解决接口不匹配导致的兼容问题,实现不同组件间的协同工作。例如,JDBC驱动作为适配器,使得Java程序能与多种数据库无缝连接。适配器模式包括类适配器、对象适配器和缺省适配器模式。在Spring中集成MyBatis,通过配置实现对不同数据库的支持,也是适配器模式的应用。该模式包含目标、源和适配器三个角色,确保在用户角度看不到源接口,达到解耦效果。

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

这里问的时候我是一脸懵逼,我答的是在spring集成mybatis,在bean配置时可以配置兼容mysql和oracel。显然答非所问 。

后来问大牛回复:你查阅一下适配器模式

因而引发的探究如下。

适配器模式的例子

例子一:
手机使用的是直流电,电源插座是交流电,而手机的充电器就起到了一个适配器的作用,它使得使用直流电的手机和使用交流点的插座可以协同工作。

例子二:
Sun公司在1996年公开了Java语言的数据库连接工具JDBC,JDBC使得Java语言程序能够与数据库连接,并使用SQL语言来查询和操作数据。JDBC给出一个客户端通用的抽象接口,每一个具体数据库引擎(如SQL Server、Oracle、MySQL等)的JDBC驱动软件都是一个介于JDBC接口和数据库引擎接口之间的适配器软件。抽象的JDBC接口和各个数据库引擎API之间都需要相应的适配器软件,这就是为各个不同数据库引擎准备的驱动程序。
即这个适配器软件可以兼容所有的数据库引擎,这就是适配器设计模式使用的一个例子。

显然适配器模式,是为了实现兼容方面的问题的。

适配器模式

适配器模式将 某个类的接口 转换成 客户端期望的另一个接口 表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper)
在用户的角度看不到被适配者,是解耦的。即看不到源接口

3个角色

  1. 目标(Target)——客户期待得到的接口,目标可以是具体的或抽象的类,也可以是接口。
  2. 源(Adaptee)也叫source——已经存在的、需要适配的类。源可以是具体的或抽象的类,也可以是接口。
  3. 适配器(Adapter)——适配器是本模式的核心。适配器把源接口转换成目标接口。显然,这一角色不可以是接口,而必须是实体类。

分类

适配器模式有分三类:

  1. 类适配器模式
  2. 对象适配器模式
  3. 缺省适配器模式,也叫默认适配器模式、接口适配器模式
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

静安书以沫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值