考虑我有一些抽象 Vehicle
类和汽车、卡车、摩托车抽象类,它们派生自Vehicle
. 还想象一下,我必须能够为卡车和摩托车创造一辆基于燃料的汽车或电动汽车等等。(具体类)
两个问题:
1.考虑我想在不知道它是什么的情况下以多态方式在车辆中填充能量。例如,如果车辆是基于燃料的,我想用燃料填充它,该方法应该使用 3 个参数:
void FillUpEnergy(EfuelType i_fuelType,int amounOfEnergy, int maxAmountOfEnergy)
但是对于基于电动的车辆,我需要几乎相同的功能签名,但这次当然没有燃料类型,例如(2个参数):
void FillUpEnergy(int amounOfEnergy, int maxAmountOfEnergy)
我可以FillUpEnergy
用上述约束做一个多态方法吗?(不同方法的签名)
2.在我的实现中,所有具体类都为Engine
(另一个抽象类)提供一个引用,它代表一个FuelEngine
或ElectricEngine
(我拥有的其他从引擎派生的具体类)。例如,我有一个名为的具体类ElectricCar
,其中包含ElectricEngine
.
这种架构足够好还是有更好的方法来实现车库系统?(在面向对象设计等方面。)