<分区>
我有一个车辆类,以及用于检查安全性的良好实现的船舶和飞机,每个类都实现自己的安全检查。世界是美好的。
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
}
}
哪些设计模式有助于在此类特定场景中减少代码冗余并使实现更简洁?