JDBC驱动程序:不同的数据库提供商实现了不同的JDBC驱动接口,使用适配器模式可以将这些不同的接口适配为标准的JDBC接口,提高应用程序的可移植性。
第一种方式是关联使用:把被适配的对象放到适配器里面,通过访问适配器的方法间接调用被适配的对象
第二种方式是继承,成为子类,通过访问子类间接访问原有类
/**
* @author Created by njy on 2023/6/8
* 源对象(source):充当翻译
*/
public class Translator {
//英——》汉
public void translateInZh(String words){
if("hello world!".equals(words)){
System.out.println("翻译成中文:”你好世界!“");
}
}
//汉——》英
public void translateInEn(String words){
if("你好世界!".equals(words)){
System.out.println("Translate in English:”hello world!“");
}
}
}
/**
* @author Created by njy on 2023/6/8
* 目标接口(target)
*/
public interface Target {
/**
* 翻译
* @param source 母语
* @param target 要翻译成的语种
* @param words 内容
*/
void translate(String source,String target,String words);
}
适配器类继承原有类
/**
* @author Created by njy on 2023/6/11
* 类适配器:通过多重继承目标接口和被适配者类方式来实现适配
*/
public class ClassAdapter extends Translator implements Target {
@Override
public void translate(String source, String target, String words) {
if("中文".equals(source) && "英文".equals(target)) {
//汉--》英
this.translateInEn(words);
} else {
//英--》汉
this.translateInZh(words);
}
}
}
测试类
/**
* @author Created by njy on 2023/6/8
*/
@SpringBootTest
public class TestAdapter {
//类适配器
@Test
void classAdapter(){
//创建一个类适配器对象
ClassAdapter adapter=new ClassAdapter();
adapter.translate("中文", "英文", "你好世界!");
adapter.translate("英语","中文","hello world!");
}
}
?
?