这个问题在这里已经有答案了:
java多重继承(17个答案)
6年前关门了。
我有一个载具类,很好地实现了船舶和飞机的安全检查,每个类实现自己的安全检查。世界是美好的。
interface Vehicle {
public void safetyCheck();
}
class Ship implements Vehicle {
@Override
public void safetyCheck() {
//check if number of lifeboats >= number of passengers
}
}
class Plane implements Vehicle {
@Override
public void safetyCheck() {
//check if oxygen mask is in place.
}
}
但很快,一种叫做水上飞机的混合动力飞机就被需要了,它可以重复安全检查 Ship
以及 Plane
```
class SeaPlane implements Vehicle {
@Override
public void safetyCheck() {
//check if oxygen mask is in place.
// &&
//check if number of lifeboats >= number of passengers
}
}
在这样的特定场景中,哪些设计模式有助于减少代码冗余并使实现更干净?
2条答案
按热度按时间2wnc66cl1#
您可以应用策略模式来从组件定义中分离组件的某些行为。然后可以在多个类中使用这些行为以避免冗余。
jpfvwuh42#
在这种情况下,不必建立新的接口或类,就可以使用compositionover inheritance原则。
所以你的
SeaPlane
可能是这样的:一个构造器
Plane
和一个Ship
对象。