【发布时间】:2014-03-13 18:48:10
【问题描述】:
最好用一个例子来解释:
interface Plane {
public void flapsExtended();
public void engineFullThrottle();
public void takeOff();
public void landed();
}
class Spitfire implements Plane {
}
class P51Mustang implements Plane {
}
到目前为止,我的代码做得很好。但是随着二战的结束,我们从来没有配备可伸缩起落架的喷气式飞机。
所以我为 F22 添加了一个新类,需要在takeOff 和land 阶段之间添加retractLandingGear() 和extendLandingGear。
示例:
class F22 {
public void flapsExtended();
public void engineFullThrottle();
public void takeOff();
public void retractLandingGear();
public void extendLandingGear();
public void landed();
}
现在我如何将 F22 与那些遗留代码(和遗留平面 :))连接起来?
【问题讨论】:
-
创建一个
interface ModernPlane extends Plane并向其中添加其他方法?尽管如果您以Plane的身份访问 F-22,您仍然将无法访问新方法...
标签: java templates design-patterns