说明如何使这个Java接口灵活
我有一个Java接口:
public interface Box {
public void open();
public void close();
}
该接口由此类扩展:
public class RedBox implements Box {
public void open() {
}
public void close() {
}
}
问题是,我希望将来添加其他类,这些类也将实现Box接口。这些新类将有自己的方法,例如其中一个类将有一个putInBox()方法,但如果我将putInBox()方法添加到Box接口,我也将被迫将putInBox()方法的空实现添加到之前实现Box接口的类中,如上面的RedBox类
我将putInBox()添加到Box接口,因为有一个类调用者接受实现Box接口的类的对象,例如:
public class Caller {
private Box box;
private int command;
public Caller(Box b) {
this.box = b;
}
public void setCommandID(int id) {
this.command = id;
}
public void call() {
if(command == 1) {
box.open();
}
if(command == 2) {
box.close();
}
// more commands here...
}
}
Caller c = new Caller(new RedBox());
c.call();
我如何在新类中实现Box接口,而不必向实现Box接口的以前每个类中添加新方法的空实现
共 (0) 个答案