Ein Wort: Nein.
Weitere Wörter: Die Abhängigkeitsinjektion ist genau das. Es ist ein Mittel, mit dem Sie Ressourcen einführen, von denen ein anderes Objekt abhängt, dessen komplizierte Details jedoch nicht aus einer anderen Quelle stammen sollten. Die Verwendung von DI bedeutet nicht, dass NICHTS in Ihrem Programm wissen sollte, wie ein anderes Objekt erstellt wird. Tatsächlich gehe ich davon aus, dass es für ein nicht triviales Programm höchst unmöglich ist, das "neue" Schlüsselwort (oder reflexionsbasierte Alternativen) vollständig zu vermeiden. DI bedeutet jedoch, dass Objekte, die nicht wissen MÜSSEN, wie komplexe Objekte zu erstellen sind, für die eine Vielzahl von Abhängigkeiten erforderlich sind, die dieses Objekt eng mit dem anderen koppeln, nicht über das gesamte Wissen zur engen Kopplung verfügen sollten.
Ich würde die beiden Haupttheorien des O / O-Softwaredesigns, GRASP und SOLID, studieren. GRASP fordert Sie auf, den Zweck des Objekts zu untersuchen und sich zu fragen: "Sollte dieses Objekt für die Erstellung neuer Objekte dieses anderen Typs verantwortlich sein? Ist dieser Teil der 'Jobbeschreibung' dieses Objekts?" SOLID geht einen Schritt weiter: Das "S" steht für das "Single Responsibility Principle", das eindeutig besagt, dass ein Objekt einen Job haben soll und dass es das einzige Objekt im Programm sein soll, das diesen speziellen Job ausführt.
GRASP empfiehlt Ihnen daher im Allgemeinen, Ihre vorhandenen Klassen zu durchsuchen, für die diese neuen Objekte erstellt werden, und eine zu finden, für die die Aufgabe zum Erstellen dieses Objekts mit der bereits durch das Objekt ausgeführten Aufgabe übereinstimmt, wobei der gewünschte Grad an "Kohäsion" beibehalten wird. SOLID wird Ihnen sagen, dass der Zusammenhalt der Schlüssel ist; Die Aufgabe, diese Objekte zu erstellen, sollte einer Fabrik übertragen werden, die in Ihre Klasse eingefügt werden soll. Ich denke, mit der zunehmenden Komplexität Ihres Programms werden Sie feststellen, dass die Einhaltung einer dieser Methoden mit der Bereitschaft zur Umgestaltung zu sehr ähnlichen Architekturen führen wird.