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.

4
Approcci graduali all'iniezione di dipendenza
Sto lavorando per rendere le mie lezioni testabili in unità, usando l'iniezione delle dipendenze. Ma alcune di queste classi hanno molti clienti e non sono ancora pronta a riformattare tutte per iniziare a passare le dipendenze. Quindi sto provando a farlo gradualmente; mantenendo le dipendenze predefinite per ora, ma consentendo …


5
Come usare l'iniezione di dipendenza ed evitare l'accoppiamento temporale?
Supponiamo di avere quello Serviceche riceve dipendenze tramite il costruttore ma deve anche essere inizializzato con dati personalizzati (contesto) prima che possano essere utilizzati: public interface IService { void Initialize(Context context); void DoSomething(); void DoOtherThing(); } public class Service : IService { private readonly object dependency1; private readonly object dependency2; …


1
Usare l'ordine di risoluzione del metodo di Python per l'iniezione di dipendenza - è male?
Ho visto Pycon di Raymond Hettinger parlare di "Super Considered Super" e ho imparato un po 'dell'MRO (Method Resolution Order) di Python che linearizza le classi "parent" in modo deterministico. Possiamo usarlo a nostro vantaggio, come nel codice seguente, per fare l'iniezione di dipendenza. Quindi ora, naturalmente, voglio usare superper …


5
Possiamo sostituire completamente l'ereditarietà usando il modello di strategia e l'iniezione di dipendenza?
Per esempio: var duckBehaviors = new Duckbehavior(); duckBehaviors.quackBehavior = new Quack(); duckBehaviors.flyBehavior = new FlyWithWings(); Duck mallardDuck = new Duck(DuckTypes.MallardDuck, duckBehaviors) Poiché la classe Duck contiene tutti i comportamenti (astratto), non sembra necessario creare una nuova classe MallardDuck(che si estende Duck). Riferimento: Head First Design Pattern, Chapter 1.


1
Qual è la motivazione dietro l'annotazione @ImplementedBy in Guice?
Di recente ho letto @ImplementedBydell'annotazione disponibile in Google Guice . Consente al programmatore di specificare un'associazione tra un'interfaccia e la sua implementazione per un uso futuro nell'iniezione delle dipendenze. È un esempio di associazione just-in-time . Sono abbastanza abituato a definire collegamenti espliciti nei miei moduli, usando la sintassi seguente: …





4
contesto ambientale vs iniezione del costruttore
Ho molte classi principali che richiedono ISessionContext del database, ILogManager per log e IService utilizzati per comunicare con un altro servizio. Voglio usare l'iniezione di dipendenza per questa classe usata da tutte le classi principali. Ho due possibili implementazioni. La classe principale che accetta IAmbientContext con tutte e tre le …


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.