Frage

ich oft über Dependency Injection gelesen und ich habe Forschung auf Google und ich verstehe, was in der Theorie kann es tun und wie es funktioniert, aber ich möchte eine tatsächliche Code-Basis sehen, indem es (Java / guice würde bevorzugt) .

Kann mich jemand deuten auf ein Open-Source-Projekt, wo ich sehen kann, wie es wirklich genutzt? Ich denke, den Code browsen und die gesamte Einrichtung zu sehen, zeigt mir mehr als die ususal Schnipsel in der Einleitung Artikel, die Sie rund um das Web zu finden. Vielen Dank im Voraus!

War es hilfreich?

Lösung

Ich verstehe Sie in Java-Land sind, aber in der .NET-Raum sind die mehrere Open-Source-Anwendungen unter Verwendung einer Inversion of Control Container geschrieben. Schauen Sie sich CodeCampServer , in dem das UI-Modul nicht einen Verweis auf die Auflösung von Abhängigkeiten hat Modul. Es ist ein Httpmodule, die die Arbeit der Fall ist. (Ein Httpmodule ist nur eine externe Bibliothek Sie anschließen können, dass Ereignisse in ASP.NET behandelt, in CodeCampServer die UI-Projekt lädt diese DependencyRegistrarModule zur Laufzeit, ohne Kompilierung Hinweis auf sie.)

Andere Tipps

Das Wave-Protokoll Server ist mein Lieblingsbeispiel App.

ich kämpfte ein wenig mit genau diesem Thema. Es ist so abstrakt und einfach Ich war immer besorgt war ich „tue es falsch“.

Ich habe es in dem Hauptprojekt wurde verwendet, die Abhängigkeiten von anderen Projekten hat, weil das Guice-Modul, das die Bindungen setzt Teil des Hauptprojektes war.

Ich stellte schließlich die Bibliotheken die Module liefern selbst werden sollen. An diesem Punkt können Sie nur auf eine Instanz eines Moduls abhängen (kein spezifisches) und die Schnittstellen, die daran gebunden sind.

Es geht sogar besser ist, können Sie die neue verwenden

ich denke, Dependency Injection hat einen Weg aus dem Blick verschwinden, wenn sie richtig verwendet wird, wird es von der Initialisierung / Wiring Ihrer Anwendung nur ein Weg sein - wenn es, dass mehr Phantasie aussieht, als Sie wahrscheinlich auf zusätzliche Funktionen des Frameworks betrachten Hand, und nicht auf dem nackten Knochen Dependency Injection.

Edit: Ich würde wirklich empfehlen beginnen, es zu benutzen, anstatt Beispiele zu versuchen, zu finden und kommen dann zurück und schreiben Fragen hier, wenn Sie nicht Sachen bekommen kann zu arbeiten, wie Sie denken würde, es sollte: -)

scroll top