Matti Mäkitalo: Übergabe/Vererbung von fertigem Objekt

Beitrag lesen

Hi,

Dependency Injection ist heimtückisch: Das Objekt und dessen Herkunft, was dem Konstruktor übergeben wird, kennt nur die main, also der Code, der das macht, nicht jedoch die Klasse selbst, die das Objekt bekommt. Das erschwert die Fehlersuche, insbesondere in Hinblick auf Teamarbeit.

ganz im Gegenteil: es erleichtert die Teamarbeit, weil die Klasse durch Unit-Tests so besser getestet werden kann.
Wenn die Klasse A (mit Abhängigkeit zu B) B in sich instantiiert, dann kannst du A nur noch als Codeklumpen A+B testen, d.h. deine Unit-Tests von müssen immer die Funktionalität von B mittesten (*). Auch sorgt es für mehr Sicherheit beim Entwickeln, wenn man beginnt, gegen die Interfaces von anderen Entwicklern zu entwickeln und nicht gegen deren echten Programmcode. Dies bedeutet immer, dass man die Klasse A nutzen kann, ohne die echte Implementierung von B nutzen zu müssen (ggf. existiert diese noch gar nicht).

Warum es die Fehlersuche erschweren soll, musst du erklären.

*: außen vorgelassen sei nun das Instantiieren einer Default-Implementierung von B mit gleichzeitiger Existenz eines Setters, um B zu überschreiben.

Bis die Tage,
Matti