Als «dependency-injection» getaggte Fragen

Abhängigkeitsinjektion ist ein Entwurfsmuster, bei dem Abhängigkeiten (Instanzen von Objekten, Eigenschaften) einer Komponente über den / die Konstruktor (en), Methoden oder Felder (Eigenschaften) festgelegt werden. Es ist eine spezielle Form der allgemeineren Abhängigkeitsinversion.


5
Was sind die Vorteile der Abhängigkeitsinjektion in Fällen, in denen fast jeder Zugriff auf eine gemeinsame Datenstruktur benötigt?
Es gibt viele Gründe, warum Globale in OOP böse sind . Wenn die Anzahl oder Größe der Objekte, die gemeinsam genutzt werden müssen, zu groß ist, um effizient in Funktionsparametern weitergegeben zu werden, empfiehlt normalerweise jeder die Abhängigkeitsinjektion anstelle eines globalen Objekts. In dem Fall, in dem fast jeder eine …

2
Problem beim Verstehen des Wortes "Naht"
Ich lese "Dependency Injection in .NET" von Mark Seemann (es ist fantastisch und muss es sein) und der Autor verwendet oft das Wort "Naht". Aber ich kann nicht verstehen, was es bedeutet. Hier ist ein Beispiel für die Verwendung dieses Wortes: In Kapitel 7 wird erläutert, wie Sie Objekte in …

2
Anämische Domänenmodelle und Injektion von Domänendiensten
Das anämische Domänenmodell wird von Martin Fowler als Antimuster im domänengetriebenen Design beschrieben. Um Geschäftslogik auf den Domänenmodellen zu haben, werden häufig Domänendienste verwendet. Das Injizieren von Domänendiensten in Domänenmodelle wird von Vaughn Vernon jedoch als schädlich eingestuft (siehe "Implementieren von domänengesteuertem Design", Seite 409). Meiner Meinung nach sind diese …


2
Gibt es Belege dafür, dass die Verwendung von Dependency Injection die Ergebnisse im Software-Engineering verbessert?
Gibt es trotz seiner Beliebtheit empirische Belege dafür, dass Dependency Injection (und / oder die Verwendung eines DI-Containers) beispielsweise bei der Reduzierung der Fehleranzahl, der Verbesserung der Wartbarkeit oder der Erhöhung der Entwicklungsgeschwindigkeit bei echten Softwareprojekten hilft?

1
Praktiken der Abhängigkeitsinjektion / IoC-Container beim Schreiben von Frameworks
Ich habe verschiedene IoC-Container (Castle.Windsor, Autofac, MEF usw.) für .Net in einer Reihe von Projekten verwendet. Ich habe festgestellt, dass sie häufig missbraucht werden und eine Reihe von schlechten Praktiken fördern. Gibt es etablierte Praktiken für die Verwendung von IoC-Containern, insbesondere bei der Bereitstellung einer Plattform / eines Frameworks? Mein …

8
Lohnt sich Dependency Injection außerhalb von UnitTesting?
Ist es angesichts eines Konstruktors, der niemals unterschiedliche Implementierungen mehrerer von ihm initialisierter Objekte verwenden muss, immer noch praktisch, DI zu verwenden? Schließlich möchten wir vielleicht noch einen Unit-Test durchführen. Die betreffende Klasse initialisiert einige andere Klassen in ihrem Konstruktor, und die von ihr verwendeten Klassen sind ziemlich spezifisch. Es …



3
Verkaufen Sie mich bitte auf IoC-Containern
Ich habe mehrere empfohlene Verwendung von IoC-Containern im Code gesehen. Die Motivation ist einfach. Nehmen Sie den folgenden in Abhängigkeit injizierten Code: 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
Sollte das Injizieren von Abhängigkeiten im ctor oder pro Methode erfolgen?
Erwägen: 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 } } gegen: public class MethodInjectionExample { public MethodInjectionExample() { } public void SomeMethod(ISomeRepository SomeRepositoryIn) { //use SomeRepositoryIn } …

3
Ich erhalte eine Abhängigkeitsinjektion, aber kann mir jemand helfen, die Notwendigkeit eines IoC-Containers zu verstehen?
Ich entschuldige mich, wenn dies wie eine weitere Wiederholung der Frage erscheint, aber jedes Mal, wenn ich einen Artikel zum Thema finde, wird meist nur darüber gesprochen, was DI ist. Also, ich bekomme DI, aber ich versuche zu verstehen, dass ein IoC-Container benötigt wird, in den sich offenbar jeder hineinzuversetzen …

5
Kann ich Dependency Injection verwenden, ohne die Kapselung zu beschädigen?
Hier ist meine Lösung und Projekte: BookStore (Lösung) BookStore.Coupler (Projekt) Bootstrapper.cs BookStore.Domain (Projekt) CreateBookCommandValidator.cs CompositeValidator.cs IValidate.cs IValidator.cs ICommandHandler.cs BookStore.Infrastructure (Projekt) CreateBookCommandHandler.cs ValidationCommandHandlerDecorator.cs BookStore.Web (Projekt) Global.asax BookStore.BatchProcesses (Projekt) Program.cs Bootstrapper.cs : public static class Bootstrapper.cs { // I'm using SimpleInjector as my DI Container public static void Initialize(Container container) { container.RegisterManyForOpenGeneric(typeof(ICommandHandler<>), …

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.