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 - einige Lehrbücher, andere nicht so sehr (wie Code Complete). Nachdem ich diese Bücher durchgesehen hatte, wandte ich mich dem Internet zu, um so viel wie möglich zu lernen, und fing an, etwas über SOLID und DI zu lernen (wir sprachen über das Substitutionsprinzip von Liskov, aber nicht über viele andere SOLID-Ideen). Wie ich gelernt habe, habe ich mich hingesetzt, um besser zu lernen, und angefangen, Code zu schreiben, um DI von Hand zu verwenden (es gibt keine DI-Frameworks auf den Entwicklungscomputern).
Während ich es tue, bemerke ich, dass es sich vertraut anfühlt ... und es scheint sehr ähnlich zu sein, wie ich es in der Vergangenheit mit der Komposition abstrakter Klassen unter Verwendung von Polymorphismus getan habe. Vermisse ich hier ein größeres Bild? Gibt es etwas an DI (zumindest von Hand), das darüber hinausgeht? Ich verstehe die Möglichkeit, dass Konfigurationen, die nicht im Code einiger DI-Frameworks enthalten sind, einige große Vorteile haben, wenn es darum geht, Dinge zu ändern, ohne sie neu kompilieren zu müssen, aber wenn ich sie von Hand mache, bin ich mir nicht sicher, ob sie anders sind als oben angegeben ... Ein Einblick in diese wäre sehr hilfreich!