2015-05-13 15 views
19

So che Dagger è un framework per le dipendenze, ma non l'ho ancora usato nei miei progetti.Quando usare Dagger nell'applicazione Android?

Sto iniziando un nuovo progetto e mi chiedo se Dagger è adatto per questo. Per quanto ho capito, l'uso di Dagger porta a un sacco di codice e annotazioni. Quindi non sono sicuro che non sia eccessivo per il mio progetto relativamente semplice.

Un po 'sul progetto. Si concentra sull'elaborazione delle immagini e la parte principale della funzionalità è costruita attorno ad essa. Tuttavia, probabilmente avrà anche un semplice back-end per l'archiviazione dei dati.

In generale, vorrei conoscere alcuni principi di base che posso utilizzare per scegliere di utilizzare Dagger per un progetto o meno.

risposta

17

intesa di base:

Supponiamo, si vuole testare l'applicazione che si occupa di servizi della carta di credito . A scopo di test, non si deve accedere ad un RPCCreditCardService reale, poiché avrà bisogno di transazioni reali e altre cose che non si desidera eseguire durante lo sviluppo. In tal caso, è necessario creare un servizio di clonazione falso che riproduca la stessa cosa che fa il vero CreditCardService ma non esegue alcuna transazione. Se si utilizza il framework di dipendenza delle dipendenze, è possibile definire attività comuni in una dipendenza e iniettarle sia in servizi falsi che reali. Ridurrà al minimo la complessità della codifica e aiuterà a rendere ciascun modulo indipendente.

Dalla documentazione:

Utilizzando quadro iniezione di dipendenza, ogni classe è facile da testare. Non hai bisogno di un po 'di boilerplate solo per scambiare il RpcCreditCardService per un FakeCreditCardService.

L'iniezione di dipendenza non è solo per test. Inoltre, semplifica la creazione di moduli riutilizzabili e intercambiabili. Puoi condividere lo stesso AuthenticationModule su tutte le tue app. Ed è possibile eseguire DevLoggingModule durante lo sviluppo e ProdLoggingModule in produzione per ottenere il comportamento corretto in ogni situazione.

Riferimento:

Per comprensione più dettagliata è possibile controllare this discussion.

+1

La domanda riguardava Dagger, non l'iniezione di dipendenza. –

+3

Dagger è un framework di iniezione delle dipendenze – Idee

Problemi correlati