In questo esempio abbiamo due classi, motore e motore dell'auto, che
hanno una funzione che simula il motore e lo fa funzionare.
L'avvio e l'auto dipendono dal motore per creare un'istanza da esso,
perché dobbiamo usarlo all'interno della funzione drive che simula l'avvio dell'auto.
Quindi la dipendenza viene creata all'interno della classe creando un'istanza della classe motore.
Il problema è che la classe auto crea il proprio motore.
In questo esempio e in questo video, passeremo
l'istanza del motore alla classe auto dall'esterno.
Quindi faremo un'iniezione manuale di dipendenza.
Quindi, qui all'interno dell'auto, cambierò il codice.
Non ho bisogno di permettere alla classe di creare le proprie dipendenze.
Eliminare invece questo.
E qui Anno.
Iniettare il costruttore.
Quindi qui motore privato val.
È di tipo motore.
Ok.
Quindi ora la dipendenza viene passata dall'esterno.
Questa è la classe delle auto.
Passiamo ora al motore.
Non abbiamo bisogno di fare nulla perché è una classe normale.
Dobbiamo passare un'istanza di questa classe alla classe auto, per consentire l'avvio della funzione di guida.
Ora, nel file principale, dobbiamo fare le citazioni e aggiornare le citazioni.
Motore Val uguale motore.
Creare una nuova funzione val car uguale a car e passare il motore.
E qui dobbiamo chiamare la macchina dot drive.
Voglio che vi concentriate su di me.
La dipendenza è iniettata.
L'auto dipende dal motore da creare.
Quindi sto iniettando qui un'istanza di motore.
Eseguiamo la nostra applicazione ed eccoci qui.
Il motore è avviato e tutto funziona bene.
Per ricapitolare rapidamente ciò che ho fatto prima nella classe motore.
Non ci sono cambiamenti nella classe auto, abbiamo iniettato il costruttore e gli
abbiamo passato un'istanza di motore, che utilizziamo all'interno della nostra funzione drive.
Quindi questa classe non crea più le proprie dipendenze, non crea più il proprio motore.
Nella funzione principale abbiamo creato un'istanza del motore e poi abbiamo
creato un'istanza di auto passando l'istanza del motore alla classe engine.
E poi abbiamo richiamato la funzione drive dalla classe auto.
Tutto funziona bene.
In questo esempio utilizziamo l'iniezione di dipendenza per far funzionare la nostra macchina.