要点:
适配器持有—被适配对象的引用,实现外层接口USB
被适配的键盘
/**
* ps/2端口键盘
* */
public class Ps2Keyboard {
public void request(){
System.out.println("可以打字,但只能插在ps/2端口的机器上!");
}
}
适配器:
/**
* 适配器
* */
public class Adapter implements USB{
private Ps2Keyboard Ps2Keyboard; //被适配类 ps/2端口键盘 对象适配
public Adapter(Ps2Keyboard ps2Keyboard) {
super();
Ps2Keyboard = ps2Keyboard;
}
@Override
public void getUsbInput() {
Ps2Keyboard.request();
}
}
笔记本上的USB接口
/**
* USB接口
* */
public interface USB {
void getUsbInput();
}
笔记本只接受USB接口实现的实例
public class Computer {
public void getKeyboard(USB usb){
usb.getUsbInput();
}
public static void main(String[] args) {
Computer com = new Computer(); //USB端口的笔记本
Ps2Keyboard ps = new Ps2Keyboard(); //ps/2端口的键盘
Adapter adapter = new Adapter(ps); //键盘和USB端口笔记本的适配器
com.getKeyboard(adapter); //适配器是USB端口的实现类
}
}