Considera di avere qualche astrattoVehicle
classe e classi astratte di auto, camion, moto che derivano da Vehicle
. Immaginate anche che io debba essere in grado di creare un'auto a base di carburante o elettrica, e così via per camion e moto. (classi concrete)Come creare un metodo polimorfico con diverse firme
due domande:
1.Consider che voglio riempire di energia in un veicolo senza sapere quello che è, in un certo senso polimorfico. Per esempio se il veicolo è di carburante basa voglio riempirlo di carburante e il metodo dovrebbe essere con 3 parametri:
void FillUpEnergy(EfuelType i_fuelType,int amounOfEnergy, int maxAmountOfEnergy)
ma per il veicolo electricy basato Ho bisogno quasi la stessa funzione signture ma questa volta senza tipo di carburante di naturalmente, per esempio (2 parametri):
void FillUpEnergy(int amounOfEnergy, int maxAmountOfEnergy)
Posso fare un FillUpEnergy
metodo polymorhic con i vincoli di cui sopra? (firme di metodo diverso)
2.In mia implementazione di tutte le classi di cemento in possesso di un riferimento per Engine
(un altro classe astratta), che rappresentano un FuelEngine
o ElectricEngine
(altre classi concrete che ho che derivano dal motore). Ad esempio, ho una classe di calcestruzzo denominata ElectricCar
che contiene un riferimento per ElectricEngine
.
Questa architettura è abbastanza buona o ci sono modi migliori per implementare un sistema di garage? (In termini di oggetto di design orientato ecc ..)
non riesce quasi mai 1) Per quanto riguarda la 2), si chiama Ponte ed è uno dei modelli di progettazione. –
Anche il pattern di bridge è stato il mio primo pensiero. –