适配器:是一个接口转换器,将一个接口转换为客户需求的另一个接口。使原本由于借口不兼容而不能操作的类可以操作。
使用场景:旧系统升级改造;
例子:InputStreamReader(InputStream),OutputStreamWriter(OutputStream)
接口:
public interface Target {
void doSth();
}
被适配的类:
public class Adaptee {
public void doSth(){
System.out.println("可以完成需求");
}
}
适配器:
public class Adapter extends Adaptee implements Target{
@Override
public void doSth() {
super.doSth();
}
}
适配器:对象适配器方式
public class Adapter2 implements Target{
private Adaptee adaptee;
public Adapter2(Adaptee adaptee) {
super();
this.adaptee = adaptee;
}
@Override
public void doSth() {
adaptee.doSth();
}
}
测试适配器:
public class Client {
public void use(Target t){
t.doSth();
}
public static void main(String[] args) {
Client c = new Client();
Target t1 = new Adapter();
Target t2 = new Adapter2(new Adaptee());
c.use(t1);
c.use(t2);
}
}