Jav*_*per 7 java design-patterns
我有一个车辆类,并且有良好的船舶和飞机检查安全性,每个级别都实施自己的安全检查.世界很好.
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.
}
}
Run Code Online (Sandbox Code Playgroud)
但很快,需要的混合称为水上飞机其中重复的安全检查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
}
}
Run Code Online (Sandbox Code Playgroud)
哪些设计模式有助于在特定情况下减少代码冗余并使实现更清晰?
如果没有为此案例建立新的接口或类,您可以使用Composition over Inheritance原则.
所以你SeaPlane可能看起来像这样:
class SeaPlane implements Vehicle {
private Vehicle plane,
ship;
@Override
public void safetyCheck() {
plane.safetyCheck();
ship.safetyCheck()
}
}
Run Code Online (Sandbox Code Playgroud)
使用构造函数获取Plane和Ship对象.
| 归档时间: |
|
| 查看次数: |
3410 次 |
| 最近记录: |