Bentornati.
In questo video impareremo a conoscere i moduli dell'elsa.
Abbiamo già detto che i moduli hilt servono a definire come vengono fornite le dipendenze.
Abbiamo usato il modulo di annotazione per dire che questo oggetto fungerà da modulo di elsa.
In questo modo la classe verrà contrassegnata come modulo per il provisioning delle dipendenze.
Abbiamo usato install in annotation e abbiamo usato il componente singleton.
Le dipendenze vivono in un ambito singleton.
Non preoccupatevi, nei prossimi video impareremo a conoscere le annotazioni sull'elsa.
Ma vorrei che vi concentraste su come creare il modulo dell'applicazione
e fornire le dipendenze e definire come vengono fornite le dipendenze.
Iniziamo con la funzione fornire il motore.
Questa classe restituisce un oggetto motore.
Ok, questo è molto semplice.
Ora, per dire a Hilt e al modello dell'applicazione che dobbiamo fornire un motore,
dobbiamo usare l'annotazione provides; l'annotazione provides dice a Hilt come fornire un oggetto.
Metodi annotati con l'annotazione provides.
Restituisce l'oggetto che sarà iniettato e in questo caso dobbiamo iniettare il motore.
Se necessario, è possibile aggiungere ulteriori logiche o configurazioni in questi metodi.
Fornisce l'annotazione utilizzata nei moduli in cui non è possibile utilizzare l'iniezione
sul costruttore, ad esempio l'interfaccia di librerie di terze parti e altre.
In seguito vedremo questa annotazione in molti esempi.
Quindi, in seguito, utilizzeremo l'annotazione provides quando l'iniezione del costruttore non è possibile.
Ad esempio, se la classe appartiene a una libreria di terze
parti, fornisce un'annotazione che aiuta a creare e restituire la dipendenza.
In questo caso, però, dobbiamo capire il ruolo e l'obiettivo dell'utilizzo dei provides,
che è quello di restituire il motore che verrà iniettato in seguito.
Occorre quindi contrassegnare questa funzione con un'altra annotazione, chiamata Singleton.
Singleton assicura che hilt fornisca una singola interfaccia della dipendenza in tutta l'applicazione.
Singleton assicura che hilt fornisca una singola istanza della dipendenza per l'intera applicazione.
Si usa con le classi fornite tramite iniezione di costruttori o con i metodi dei moduli.
Gli oggetti annotati con l'annotazione singleton vivono per l'intera durata dell'applicazione.
Non preoccupatevi, impareremo a conoscere a fondo queste annotazioni nei prossimi video.
Perché usare Singleton.
Se si vuole che una dipendenza viva nell'applicazione e sia riutilizzata ovunque, invece
di creare una nuova istanza ogni volta che si usa un singleton.
La seconda funzione che dobbiamo creare è la funzione provide car.
Fornire l'auto.
Qui dobbiamo passare un parametro del motore e auto restituire auto e passare il motore.
Dobbiamo dire al modulo hilt che questo metodo creerà e fornirà un'istanza della classe car.
Dobbiamo usare di nuovo l'annotazione provides e l'annotazione singleton.
Di nuovo.
Ragazzi, questa annotazione contrassegna il metodo come metodo fornitore.
Indica a Hilt come creare un oggetto quando l'iniezione del costruttore non è sufficiente o non è possibile.
In questo caso, dice a Hilt che questo metodo fornisce un oggetto auto.
Annotazione Singleton.
Questa annotazione assicura che venga creata e percorsa una sola istanza
di auto durante il ciclo di vita dell'applicazione, ovvero l'ambito singleton.
Senza singleton, verrebbe creata una nuova istanza di auto ogni volta che viene richiesta.
Ancora una volta, ragazzi, queste note e commenti sono molto importanti.
Voglio che li scriviate perché sono molto importanti per
memorizzare ogni codice e ogni singola riga di codice.
Di nuovo ragazzi, come usare questo codice? Hilt
risolve innanzitutto la dipendenza dal motore dei parametri.
Hilt utilizza l'iniezione, l'annotazione o altri strumenti.
Ad esempio, per il metodo di annotazione provides, per
creare un'istanza del motore, se non è già disponibile.
Quindi forniamo un'istanza di scheda.
Una volta che Hilt ha l'istanza del motore, chiama il metodo provide card per creare un'istanza di carta.
L'oggetto carta risultante è memorizzato in un ambito singleton,
grazie all'annotazione singleton, quindi sarà riutilizzato ovunque sia necessario.
Ecco come funziona l'elsa.
Per ricapitolare rapidamente ciò che abbiamo fatto in questo video.
Abbiamo creato la parte più importante, ovvero il modulo dell'applicazione.
La prima cosa da fare per il flusso di esecuzione è la richiesta di auto.
Quindi una classe o una funzione da qualche parte nell'applicazione richiede un oggetto auto.
Hilt risolve le dipendenze hilt.
Per prima cosa, verificare come fornire l'oggetto motore tramite l'annotazione inject o l'annotazione provides a.
Quindi hilt cerca l'annotazione inject o provides nel modulo dell'applicazione.
Hilt chiama quindi l'auto provide con l'istanza del motore risolta come parametro.
Il comportamento dei singleton.
Poiché viene utilizzato Singleton, viene utilizzata l'annotazione Singleton.
La stessa istanza di auto viene riutilizzata ogni volta che viene richiesta.