介绍
将一个类的接口转换成客户希望的另一个接口,Adapter模式使得原本由于接口不兼容而不能在一起工作的那些类可以在一起工作。
角色分析
- 目标接口:客户所期待的接口,目标可以是具体的或抽象的类,也可以是接口
- 需要适配的类:需要适配的类或者适配者类
- 适配器:通过包装一个需要适配的对象
实例USB-上网
//computer
package Eadapter;
/**
* @Author Zhou jian
* @Date 2020 ${month} 2020/6/30 0030 15:41
* 客户端类:想上网,差不性阿訇网线
*/
public class Computer {
//我们的电脑需要联结转接器才可以实现请求
public void net(NetToUSB adpter){
//上网的具体实现,找一个转接头
adpter.handlerRequest();
}
}
//需要是噢诶的类:网线
package Eadapter;
/**
* @Author Zhou jian
* @Date 2020 ${month} 2020/6/30 0030 15:38
* 要被适配的类:网线
*/
public class Adptee {
public void request(){
System.out.println("连接网线上网");
}
}
//适配器接口
package Eadapter;
/**
* @Author Zhou jian
* @Date 2020 ${month} 2020/6/30 0030 15:44
接头装换器的抽象实现
*/
public interface NetToUSB {
//作用:处理请求,网线===》usb\
public void handlerRequest();
}
//适配器实现
package Eadapter;
/**
* @Author Zhou jian
* @Date 2020 ${month} 2020/6/30 0030 15:45
* 真正的适配器 ,需要联结USB ,连接网线
*/
public class Adapter implements NetToUSB{
//网线组合
private Adptee adptee;
public Adapter(Adptee adptee) {
this.adptee = adptee;
}
@Override
public void handlerRequest() {
adptee.request();//可以上网了
}
}
Java中使用场景
- Java中的Enumeration接口转换为Iterator接口
- Java中的jdbc
- 在 LINUX 上运行 WINDOWS 程序