Domande taggate «dependency-injection»

Iniezione delle dipendenze, è un modello di progettazione in cui le dipendenze (istanze di oggetti, proprietà) di un componente vengono impostate tramite il costruttore (i), i metodi o i campi (proprietà). È una forma speciale dell'inversione di dipendenza più generale.

2
Iniezione di dipendenza vs metodi statici
Oggi ho avuto un'interessante discussione con un altro sviluppatore su come affrontare una classe con un metodo che accetta una stringa e genera una stringa. Immagina qualcosa di simile al seguente, completamente inventato a scopo di esempio public string GetStringPart(string input) { //Some input validation which is removed for clarity …

5
Quali sono i vantaggi dell'iniezione di dipendenza nei casi in cui quasi tutti hanno bisogno di accedere a una struttura dati comune?
Ci sono molte ragioni per cui i globi sono cattivi in OOP. Se il numero o la dimensione degli oggetti che richiedono la condivisione è troppo grande per essere passati in modo efficiente nei parametri di funzione, di solito tutti raccomandano l' iniezione di dipendenza anziché un oggetto globale. Tuttavia, …




2
Esistono prove del fatto che l'uso dell'iniezione di dipendenza migliora i risultati nell'ingegneria del software?
Nonostante la sua popolarità, ci sono prove empiriche che dimostrano che l'iniezione di dipendenza (e / o l'uso di un contenitore DI) aiuta, diciamo, a ridurre il numero di bug, migliorare la manutenibilità o aumentare la velocità di sviluppo su progetti software nella vita reale?

1
Pratiche relative al contenitore Injection / IoC per le dipendenze durante la scrittura di framework
Ho usato vari contenitori IoC (Castle.Windsor, Autofac, MEF, ecc.) Per .Net in numerosi progetti. Ho scoperto che tendono ad essere frequentemente abusati e incoraggiano una serie di cattive pratiche. Esistono pratiche consolidate per l'utilizzo del contenitore IoC, in particolare quando si fornisce una piattaforma / framework? Il mio obiettivo come …




3
Vendimi su contenitori IoC, per favore
Ho visto diversi raccomandare l'uso di contenitori IoC nel codice. La motivazione è semplice Prendi il seguente codice iniettato di dipendenza: class UnitUnderTest { std::auto_ptr<Dependency> d_; public: UnitUnderTest( std::auto_ptr<Dependency> d = std::auto_ptr<Dependency>(new ConcreteDependency) ) : d_(d) { } }; TEST(UnitUnderTest, Example) { std::auto_ptr<Dependency> dep(new MockDependency); UnitUnderTest uut(dep); //Test here } …


4
L'iniezione delle dipendenze dovrebbe essere effettuata nel ctor o per metodo?
Ritenere: public class CtorInjectionExample { public CtorInjectionExample(ISomeRepository SomeRepositoryIn, IOtherRepository OtherRepositoryIn) { this._someRepository = SomeRepositoryIn; this._otherRepository = OtherRepositoryIn; } public void SomeMethod() { //use this._someRepository } public void OtherMethod() { //use this._otherRepository } } contro: public class MethodInjectionExample { public MethodInjectionExample() { } public void SomeMethod(ISomeRepository SomeRepositoryIn) { //use SomeRepositoryIn } …


5
Posso usare l'iniezione di dipendenza senza interrompere l'incapsulamento?
Ecco la mia soluzione e i miei progetti: BookStore (soluzione) BookStore.Coupler (progetto) Bootstrapper.cs BookStore.Domain (progetto) CreateBookCommandValidator.cs CompositeValidator.cs IValidate.cs IValidator.cs ICommandHandler.cs BookStore.Infrastructure (progetto) CreateBookCommandHandler.cs ValidationCommandHandlerDecorator.cs BookStore.Web (progetto) global.asax BookStore.BatchProcesses (progetto) Program.cs Bootstrapper.cs : public static class Bootstrapper.cs { // I'm using SimpleInjector as my DI Container public static void Initialize(Container container) …

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.