背景
定义USB接口,使鼠标、键盘类实现USB接口,以便在电脑上使用。
示意图
分析
- USB接口,包含开关设备功能
- 电脑类,包含开关机、使用USB设备功能
- 鼠标类,实现USB接口,并具备点击的功能
- 键盘类,实现USB接口,并具备打字的功能
实现
Usb接口
public interface Usb {
void powerOn();
void powerOff();
}
Computer类
重点关注useDevice
方法
public class Computer {
public void open(){
System.out.println("computer is opened");
}
public void close(){
System.out.println("computer is closed");
}
public void useDevice(Usb device){
device.powerOn();
if(device instanceof Mouse){
((Mouse) device).click();
} else if(device instanceof Keyboard){
((Keyboard) device).type();
}
device.powerOff();
}
}
Keyboard类、Mouse类
public class Keyboard implements Usb {
@Override
public void powerOn() {
System.out.println("keyboard powers on");
}
@Override
public void powerOff() {
System.out.println("keyboard powers off");
}
public void type(){
System.out.println("keyboard types");
}
}
public class Mouse implements Usb {
@Override
public void powerOn() {
System.out.println("mouse powers on");
}
@Override
public void powerOff() {
System.out.println("mouse powers off");
}
public void click(){
System.out.println("mouse clicks");
}
}