这里问的时候我是一脸懵逼,我答的是在spring集成mybatis,在bean配置时可以配置兼容mysql和oracel。显然答非所问 。
后来问大牛回复:你查阅一下适配器模式
因而引发的探究如下。
适配器模式的例子
例子一:
手机使用的是直流电,电源插座是交流电,而手机的充电器就起到了一个适配器的作用,它使得使用直流电的手机和使用交流点的插座可以协同工作。
例子二:
Sun公司在1996年公开了Java语言的数据库连接工具JDBC,JDBC使得Java语言程序能够与数据库连接,并使用SQL语言来查询和操作数据。JDBC给出一个客户端通用的抽象接口,每一个具体数据库引擎(如SQL Server、Oracle、MySQL等)的JDBC驱动软件都是一个介于JDBC接口和数据库引擎接口之间的适配器软件。抽象的JDBC接口和各个数据库引擎API之间都需要相应的适配器软件,这就是为各个不同数据库引擎准备的驱动程序。
即这个适配器软件可以兼容所有的数据库引擎,这就是适配器设计模式使用的一个例子。
显然适配器模式,是为了实现兼容方面的问题的。
适配器模式
适配器模式将 某个类的接口 转换成 客户端期望的另一个接口 表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper)
在用户的角度看不到被适配者,是解耦的。即看不到源接口
3个角色
- 目标(Target)——客户期待得到的接口,目标可以是具体的或抽象的类,也可以是接口。
- 源(Adaptee)也叫source——已经存在的、需要适配的类。源可以是具体的或抽象的类,也可以是接口。
- 适配器(Adapter)——适配器是本模式的核心。适配器把源接口转换成目标接口。显然,这一角色不可以是接口,而必须是实体类。
分类
适配器模式有分三类:
- 类适配器模式
- 对象适配器模式
- 缺省适配器模式,也叫默认适配器模式、接口适配器模式