适配器模式,适配器,日常生活中有很多,电源适配器(三相电转两相电或两相电转三相电),鼠标适配器(PS/2转USB或USB转PS/2)等等。适配器,就是让设备,能在接口不一样的情况下正常工作。
1.PS2类型鼠标,只有PS2接口
package dcr.study.dp.adapter;
public interface IPS2Mouse {
void ps2();
}
2.USB类型鼠标,只有USB接口
package dcr.study.dp.adapter;
public interface IUSBMouse {
void usb();
}
3.实现PS2鼠标
package dcr.study.dp.adapter;
public class PS2Mouse implements IPS2Mouse {
@Override
public void ps2() {
System.out.println("PS2接口鼠标,使用电脑PS2接口");
}
}
4.实现USB鼠标
package dcr.study.dp.adapter;
public class USBMouse implements IUSBMouse {
@Override
public void usb() {
System.out.println("USB接口鼠标,使用电脑的USB接口");
}
}
5.做个PS2转USB的适配器,同理也可以做一个USB转PS2的适配嚣,如果需要,还可以做个双向适配器。
package dcr.study.dp.adapter;
public class PS2TOUSBAdapter implements IUSBMouse {
IPS2Mouse mouse ;
public PS2TOUSBAdapter(IPS2Mouse ps2mouse){
this.mouse = ps2mouse;
}
@Override
public void usb() {
mouse.ps2();
}
}
5 . 在只有USB接口的电脑上使用PS2鼠标。
package dcr.study.dp.adapter;
public class Application {
public static void main(String[] args){
//当前程序如果是一台只拥有USB的接口的电脑
//现在我只有一个PS2的鼠标
PS2Mouse ps2mouse = new PS2Mouse();
//那么我使用一个PS2转USB的适配器
IUSBMouse mouse = new PS2TOUSBAdapter(ps2mouse);
//这样我就可以把PS2鼠标转成USB来使用了
mouse.usb();
}
}
对像适配器,可以使用组合,不仅可以适配某人类,也可以适配该类的子类。