适配器模式,调用者调用的对象有一个标准规范,但是提供者不符合这个规范,此时调用者需要调用提供者中间就需要一个适配器来转换标准。类比于电源适配器。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。
举个栗子,电脑只有usb接口但是要读取sd卡内容
类适配器模式
这种模式是适配器是通过继承被继承对象来实现的。
public interface USB {
String readUSB();
}
public interface SD{
String readSD();
}
pulic class SamSD implements SD{
@Override
public String readSD(){
return "I'm SamSD";
}
}
public class SDAdapteUSB extends SamSD implements USB{
@Override
public String readUSB(){
return super.readSD();
}
}
PC(){
USB sd=new SDAdapteUSB();
sd.readUSB();
}
对象适配器模式
这种模式通过对象组合来实现,比类适配器灵活很多。
public class SDAdapteUSB implements USB{
SD sd;
public SDAdapteUSB(SD sd){
this.sd =sd;
}
@Override
public String readUSB(){
return sd.readSD();
}
}
PC(){
SD sd =new SamSD();
USB usb=new SDAdapteUSB(sd);
usb.readUSB();
}