Von Matthias Nolte auf Dienstag, 20. September 2022
Kategorie: Application Development

Verschiedene Arten der Dependency Injection

Wenn ein Objekt andere Objekte, die es benötigt, nicht mehr selbst instanziiert oder verwaltet, sondern diese durchs Framework zur Verfügung gestellt werden, so spricht man von Dependency Injection (DI). Welche Arten der Dependency Injection gibt es und was sind deren Vor- und Nachteile? 

Ausgangslage 

​In unserem Team arbeiten wir mit Spring und verwenden Field Injection. Bei Unit-Tests werden Spring-Bans manchmal ohne Spring-Container verwendet. In diesem Fall injiziert der Entwickler die Abhängigkeiten von Hand. Aus diesem Grund haben wir uns mit den verschiedenen Arten von Dependency Injection beschäftigt.

Arten der DI

Es gibt drei Arten von DI:

 Field Injection

Eigenheiten:


Vorteil:


Nachteile:

Constructor Injection 

​Eigenschaft:


Vorteile:


Nachteil:

Setter Injection 

Vorteil:


Nachteile:

Fazit 

In unserem Team entschieden wir uns, Constructor Injection zu verwenden, weil so der Code recht übersichtlich bleibt (alle Abhängigkeiten finden sich an einer Stelle beim Konstruktor) und wir so unsere Objekte einfach in Unit-Tests (Komponententests) instanziieren können. Ein anderer Vorschlag, Constructor Injection für notwendige und Setter Injection für optionale Abhängigkeiten zu verwenden, war für uns nicht von Belang, da wir nur notwendige Abhängigkeiten haben.  

Seminarempfehlung

Kommentare hinterlassen