Quanto è ampia la definizione di "dipendenza da iniezione"?

0

Qual è l'"essenza" dell'iniezione di dipendenza? È l'idea di sostituire in modo dinamico / aspetti strutturali logici / strutturali di un programma in fase di runtime?

Tradizionalmente, questo viene fatto in codice tramite un contenitore DI. Ad esempio, utilizzando Structure Map in C #:

container.For<ICacheService>().Use<InMemoryCache>();

Tuttavia, ho scritto diversi programmi che iniettano codice tramite configurazione, in XML. Qualcosa come:

<cacheServiceProvider use="My.Namespace.InMemoryCache, MyAssembly"/>

Tale configurazione viene iterata all'avvio e le varie classi vengono istanziate per l'uso in tutto il programma.

È giusto dire che questa è una forma di DI? "Iniezione delle dipendenze per configurazione"? O DI richiede la configurazione nel codice e l'uso di alcuni sistemi di contenitori?

I loro altri aspetti filosofici o convenzionali richiesti per dire qualcosa sono "dipendenza iniettata" o sto completamente fraintendendo questo?

    
posta Deane 27.05.2016 - 13:35
fonte

1 risposta

9

L'essenza è semplicemente che dato un oggetto, tu passi le sue dipendenze piuttosto che lasciarlo istanziare da solo .

Il modo in cui lo ottieni, tramite contenitori, configurazione o qualsiasi altro mezzo, dipende da te.

    
risposta data 27.05.2016 - 13:45
fonte

Leggi altre domande sui tag