WEBVTT

1
00:01.240 --> 00:09.800
In questo esempio abbiamo due classi,
motore e motore dell'auto, che

2
00:09.800 --> 00:10.120
hanno una funzione che simula il motore e
lo fa funzionare.

3
00:10.120 --> 00:18.640
L'avvio e l'auto dipendono dal motore per
creare un'istanza da esso,

4
00:18.640 --> 00:22.400
perché dobbiamo usarlo all'interno della
funzione drive che simula l'avvio
dell'auto.

5
00:22.560 --> 00:29.120
Quindi la dipendenza viene creata
all'interno della classe creando
un'istanza della classe motore.

6
00:29.240 --> 00:34.000
Il problema è che la classe auto crea il
proprio motore.

7
00:34.000 --> 00:42.760
In questo esempio e in questo video,
passeremo

8
00:42.760 --> 00:43.600
l'istanza del motore alla classe auto
dall'esterno.

9
00:43.600 --> 00:49.680
Quindi faremo un'iniezione manuale di
dipendenza.

10
00:49.680 --> 00:53.480
Quindi, qui all'interno dell'auto,
cambierò il codice.

11
00:53.520 --> 00:59.520
Non ho bisogno di permettere alla classe
di creare le proprie dipendenze.

12
00:59.520 --> 01:01.680
Eliminare invece questo.

13
01:01.720 --> 01:02.590
E qui Anno.

14
01:02.630 --> 01:04.470
Iniettare il costruttore.

15
01:04.750 --> 01:08.350
Quindi qui motore privato val.

16
01:08.510 --> 01:09.710
È di tipo motore.

17
01:09.750 --> 01:10.270
Ok.

18
01:10.590 --> 01:16.350
Quindi ora la dipendenza viene passata
dall'esterno.

19
01:16.350 --> 01:18.310
Questa è la classe delle auto.

20
01:18.430 --> 01:20.590
Passiamo ora al motore.

21
01:20.590 --> 01:25.390
Non abbiamo bisogno di fare nulla perché è
una classe normale.

22
01:25.390 --> 01:32.270
Dobbiamo passare un'istanza di questa
classe alla classe auto, per consentire
l'avvio della funzione di guida.

23
01:32.310 --> 01:38.830
Ora, nel file principale, dobbiamo fare le
citazioni e aggiornare le citazioni.

24
01:38.870 --> 01:41.950
Motore Val uguale motore.

25
01:41.950 --> 01:50.150
Creare una nuova funzione val car uguale a
car e passare il motore.

26
01:50.310 --> 01:55.110
E qui dobbiamo chiamare la macchina dot
drive.

27
01:55.150 --> 01:57.630
Voglio che vi concentriate su di me.

28
01:57.670 --> 02:00.070
La dipendenza è iniettata.

29
02:00.230 --> 02:03.910
L'auto dipende dal motore da creare.

30
02:03.910 --> 02:08.090
Quindi sto iniettando qui un'istanza di
motore.

31
02:08.210 --> 02:11.450
Eseguiamo la nostra applicazione ed eccoci
qui.

32
02:11.730 --> 02:16.090
Il motore è avviato e tutto funziona bene.

33
02:16.130 --> 02:20.810
Per ricapitolare rapidamente ciò che ho
fatto prima nella classe motore.

34
02:20.970 --> 02:29.290
Non ci sono cambiamenti nella classe auto,
abbiamo iniettato il costruttore e gli

35
02:29.290 --> 02:32.650
abbiamo passato un'istanza di motore, che
utilizziamo all'interno della nostra
funzione drive.

36
02:32.650 --> 02:40.650
Quindi questa classe non crea più le
proprie dipendenze, non crea più il
proprio motore.

37
02:40.650 --> 02:49.050
Nella funzione principale abbiamo creato
un'istanza del motore e poi abbiamo

38
02:49.050 --> 02:51.770
creato un'istanza di auto passando
l'istanza del motore alla classe engine.

39
02:51.770 --> 02:56.570
E poi abbiamo richiamato la funzione drive
dalla classe auto.

40
02:56.610 --> 02:58.610
Tutto funziona bene.

41
02:58.730 --> 03:04.530
In questo esempio utilizziamo l'iniezione
di dipendenza per far funzionare la nostra
macchina.


