WEBVTT

1
00:01.480 --> 00:02.480
Bentornati.

2
00:02.800 --> 00:05.960
In questo video impareremo a conoscere
l'iniezione di metodi.

3
00:05.960 --> 00:13.120
L'iniezione di metodi è un tipo di
iniezione di dipendenze in cui le
dipendenze vengono iniettate in un metodo.

4
00:13.120 --> 00:20.640
Questo è particolarmente utile quando una
dipendenza è richiesta

5
00:20.640 --> 00:22.040
solo temporaneamente e non deve essere
memorizzata nella classe.

6
00:22.040 --> 00:27.440
La dipendenza deve essere iniettata
durante l'esecuzione del metodo.

7
00:27.440 --> 00:33.760
Nel metodo dagger, l'iniezione funziona
annotando un metodo con l'annotazione
inject.

8
00:33.800 --> 00:42.480
Dagger chiamerà questo metodo dopo che la
classe è

9
00:42.480 --> 00:42.720
stata costruita e vi inietterà le
dipendenze necessarie.

10
00:42.720 --> 00:50.840
Facciamo un salto in Android Studio e
capiamo l'iniezione di metodo usando lo
stesso esempio dell'auto e

11
00:50.840 --> 00:59.280
del motore qui all'interno della classe
motore, non dobbiamo fare alcuna modifica
perché è la dipendenza.

12
00:59.280 --> 01:00.720
Passiamo alla macchina.

13
01:00.760 --> 01:04.160
La classe di auto nell'iniezione
precedente.

14
01:04.160 --> 01:05.600
Iniezione sul campo.

15
01:05.600 --> 01:10.200
Qui abbiamo annotato la proprietà del
motore come inject.

16
01:10.300 --> 01:15.780
Ora sostituirò l'iniezione di campo con
l'iniezione di metodo.

17
01:15.780 --> 01:18.340
Manterrò la proprietà del motore.

18
01:18.340 --> 01:23.740
E qui creerò un nuovo metodo chiamato
install engine.

19
01:24.020 --> 01:27.700
Inserisce nei parametri un'istanza del
motore.

20
01:27.900 --> 01:32.700
Questo motore equivale a questo motore o a
quello passato.

21
01:32.700 --> 01:41.820
Ora, per usare l'iniezione del metodo,
dobbiamo annotare questo metodo con
l'annotazione inject e

22
01:41.820 --> 01:51.580
rimuovere inject dalla proprietà engine,
che inietterà l'istanza del motore in
questo metodo.

23
01:51.580 --> 02:00.700
In parole povere, dagger o hilt
chiameranno questo metodo install engine e
inietteranno l'istanza

24
02:00.740 --> 02:06.780
del motore richiesta durante il processo
di dependency injection a livello di
modulo dell'applicazione.

25
02:06.820 --> 02:10.300
Nessuna modifica a livello di componente
dell'applicazione.

26
02:10.340 --> 02:18.980
Nessuna modifica, perché la funzione
inject specifica che la classe

27
02:18.980 --> 02:20.070
auto riceverà le sue dipendenze tramite
iniezione di metodi.

28
02:20.070 --> 02:23.830
In questo caso, passare al file
principale, il componente
dell'applicazione.

29
02:23.870 --> 02:30.830
Lo stesso recupero dell'istanza dell'auto
e anche altri codici sono gli stessi.

30
02:30.870 --> 02:33.790
Eseguiamo la nostra applicazione ed eccoci
qui.

31
02:33.830 --> 02:35.230
Il motore si è avviato.

32
02:35.230 --> 02:39.790
In questo esempio abbiamo lavorato con
l'iniezione di metodi.

33
02:39.830 --> 02:47.790
Anche in questo caso si apportano alcune
modifiche ogni volta che è necessario
utilizzare l'iniezione di metodi nella
classe dipendente.

34
02:47.790 --> 02:52.190
Quindi l'auto ha un motore di istanza.

35
02:52.190 --> 02:58.270
Inoltre, al suo interno abbiamo creato una
nuova funzione contrassegnata come
annotazione inject.

36
02:58.270 --> 03:05.710
Inoltre abbiamo iniettato il motore
all'interno dei parametri e pugnale

37
03:05.710 --> 03:07.350
o elsa inietteranno l'istanza del motore
in questo metodo.

38
03:07.350 --> 03:16.190
Quindi, ogni volta che l'annotazione
inject viene usata con il campo o il
metodo o

39
03:16.190 --> 03:22.870
il costruttore hilt inietterà l'istanza
del motore nella proprietà, nel metodo o
nel costruttore corrispondenti.

40
03:22.870 --> 03:27.390
Ecco come lavorare con l'iniezione di
metodi.


