适配器模式:
将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作!
代理模式和适配器模式之间的区别的参考博文
角色分析
- 目标接口:客户所期待的接口,目标可以是具体的类或抽象的类,也可以是接口。
- 需要适配的类:需要适配的类或适配者的类。
- 适配器:通过包装一个需要适配的对象,把原接口转换成目标对象。
1.网线类
//要适配的类, 网线
public class Adaptee {
public void request(){
System.out.println("连接网线上网");
}
}
适配器抽象的接口
//接口转换器的抽象实现
public interface NetToUsb {
//作用:处理请求,网线=>usb
public void handleRequest();
}
2.适配器类
// 2. 组合(对象适配器,常用)
public class Adapter2 implements NetToUsb {
private Adaptee adaptee;
public Adapter2(Adaptee adaptee) {
this.adaptee = adaptee;
}
@Override
public void handleRequest() {
adaptee.request(); //可以上网了
}
}
computer类(客户端类)
//客户端类,想上网,插不上网线
public class Computer {
//我们的电脑需要连接上转接器才可以上网
public void net(NetToUsb adapter){
//上网的具体实现,找一个转接口
adapter.handleRequest();
}
public static void main(String[] args) {
//电脑,适配器,网线1
Computer computer = new Computer();
Adaptee adaptee = new Adaptee(); //网线
Adapter2 adapter2 = new Adapter2(adaptee); //转接器
computer.net(adapter2);
}
}