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.


3
Eine Vielzahl von Implementierungen. DI hoffnungslos? Service Locator verwenden?
Angenommen, wir haben 1001 Clients, die ihre Abhängigkeiten direkt aufbauen, anstatt Injektionen zu akzeptieren. Das Refactoring des 1001 ist laut unserem Chef keine Option. Wir haben nicht einmal Zugriff auf ihre Quelle, nur auf die Klassendateien. Wir sollen das System, das diese 1001 Clients durchlaufen, "modernisieren". Wir können alles umgestalten, …


3
Ist Poor Man's Dependency Injection ein guter Weg, um Testbarkeit in eine Legacy-Anwendung einzuführen?
Im vergangenen Jahr habe ich ein neues System mit Dependency Injection und einem IOC-Container erstellt. Das hat mir viel über DI beigebracht! Ich halte es jedoch auch nach dem Erlernen der Konzepte und Muster für eine Herausforderung, Code zu entkoppeln und einen IOC-Container in eine Legacy-Anwendung einzuführen. Die Anwendung ist …

4
Auf diese Weise schreibe ich diesen Code ist testbar, aber ist etwas falsch daran, was ich vermisse?
Ich habe eine Schnittstelle aufgerufen IContext. Zu diesem Zweck spielt es keine Rolle, was es tut, mit Ausnahme der folgenden: T GetService<T>(); Diese Methode überprüft den aktuellen DI-Container der Anwendung und versucht, die Abhängigkeit aufzulösen. Ziemlich normal, denke ich. In meiner ASP.NET MVC-Anwendung sieht mein Konstruktor folgendermaßen aus. protected MyControllerBase(IContext …

6
Frage eines der Argumente für Abhängigkeitsinjektions-Frameworks: Warum ist das Erstellen eines Objektgraphen schwierig?
Abhängigkeitsinjektionsframeworks wie Google Guice geben die folgende Motivation für ihre Verwendung ( Quelle ): Um ein Objekt zu erstellen, erstellen Sie zuerst seine Abhängigkeiten. Aber um jede Abhängigkeit aufzubauen, benötigen Sie ihre Abhängigkeiten und so weiter. Wenn Sie also ein Objekt erstellen, müssen Sie wirklich ein Objektdiagramm erstellen. Das Erstellen …


3
MVVM und Dienstmuster
Ich erstelle eine WPF-Anwendung mit dem MVVM-Muster. Momentan rufen meine Ansichtsmodelle die Serviceebene auf, um Modelle abzurufen (was für das Ansichtsmodell nicht relevant ist) und sie in Ansichtsmodelle zu konvertieren. Ich verwende die Konstruktorinjektion, um den erforderlichen Dienst an das Ansichtsmodell zu übergeben. Es ist leicht zu testen und funktioniert …


4
Ist die Abhängigkeitsinjektion von Hand eine bessere Alternative zu Zusammensetzung und Polymorphismus?
Erstens bin ich ein Programmierer der Einstiegsklasse. Tatsächlich beende ich im Sommer ein AS-Studium mit einem Abschlussprojekt. Wenn ich in meinem neuen Job kein Projekt für mich habe (sie warten darauf, das Team mit weiteren Neueinstellungen zu füllen), habe ich Bücher zum Lesen und Lernen erhalten, während ich warte - …


2
Was ist der praktische Unterschied zwischen den Arten der Abhängigkeitsinjektion?
Ich bin neu in der Abhängigkeitsinjektion und habe ein paar Fragen dazu, welchen Stil ich in meinen Anwendungen verwenden soll. Ich habe gerade Inversion of Control Containers und das Dependency Injection Pattern von Martin Fowler gelesen , kann aber den praktischen Unterschied zwischen Konstruktor-, Setter- und Interface-Injection nicht erkennen. Es …

2
Abhängigkeitsinjektion mit n-Tier-Entity-Framework-Lösung
Ich entwerfe derzeit eine n-Tier-Lösung, die Entity Framework 5 (.net 4) als Datenzugriffsstrategie verwendet, bin jedoch besorgt darüber, wie die Abhängigkeitsinjektion integriert werden kann, um sie testbar / flexibel zu machen. Mein aktuelles Lösungslayout sieht wie folgt aus (meine Lösung heißt Alcatraz): Alcatraz.WebUI : Ein asp.net-Webform-Projekt, die Front-End-Benutzeroberfläche, verweist auf …

3
IValidatableObject vs Single Responsibility
Mir gefällt der Extnesibility Point von MVC, mit dem Ansichtsmodelle IValidatableObject implementieren und benutzerdefinierte Validierungen hinzufügen können. Ich versuche, meine Controller schlank zu halten, wobei dieser Code die einzige Validierungslogik ist: if (!ModelState.IsValid) return View(loginViewModel); Ein Anmeldeansichtsmodell implementiert beispielsweise IValidatableObject und ruft das ILoginValidator-Objekt über die Konstruktorinjektion ab: public interface …

4
Allmähliche Ansätze zur Abhängigkeitsinjektion
Ich arbeite daran, meine Klassen mit Hilfe von Dependency Injection Unit-testbar zu machen. Aber einige dieser Klassen haben viele Clients, und ich bin noch nicht bereit, alle zu überarbeiten, um die Abhängigkeiten noch zu übergeben. Also versuche ich es allmählich zu tun; Behalten Sie die Standardabhängigkeiten vorerst bei, lassen Sie …

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.