Considere que tengo algunos abstractosVehicle
clases abstractas de clase y auto, camión, motocicleta que derivan de Vehicle
. También imagine que tengo que poder crear un automóvil con base de combustible o un automóvil con base eléctrica, y así también para camiones y motocicletas. (clases concretas)¿Cómo puedo hacer un método polimórfico con diferentes firmas?
dos preguntas:
1.Consider que quiero llenar de energía en un vehículo sin saber lo que es, de una forma polimórfica. Por ejemplo, si el vehículo se basa combustible quiero llenarlo de combustible y el método debería ser con 3 parámetros:
void FillUpEnergy(EfuelType i_fuelType,int amounOfEnergy, int maxAmountOfEnergy)
pero para vehículo basado electricy que necesito casi el mismo signture función, pero esta vez sin el tipo de combustible de curso, por ejemplo (2) parámetros:
void FillUpEnergy(int amounOfEnergy, int maxAmountOfEnergy)
¿Puedo hacer una FillUpEnergy
método Polymorhic con las limitaciones anteriores? (firmas diferentes de método)
2.In mi aplicación todas las clases concretas tienen una referencia para Engine
(otra clase abstracta) que representan un FuelEngine
o ElectricEngine
(otras clases concretas que tengo que derivan de motor). Por ejemplo, tengo una clase concreta llamada ElectricCar
que contiene una referencia para ElectricEngine
.
¿Es esta arquitectura lo suficientemente buena o hay mejores formas de implementar un sistema de garaje? (En términos de diseño orientado a objetos, etc ..)
yo no lo entiendo muy 1) En cuanto a 2), se llama puente y es uno de los patrones de diseño. –
El patrón del puente fue mi primer pensamiento también. –