Dependency Injection (DI) bedeutet, dass ein Objekt seine Abhängigkeiten von außen erhält, anstatt sie selbst zu erstellen. Es ist eine Form von Inversion of Control (IoC): die Verantwortung für das Verbinden von Objekten ist invertiert — weg vom Objekt und hin zu einem Aufrufer oder Container.
Ohne DI vs. mit DI
:
():
.repo = PostgresOrderRepo()
:
():
.repo = repo
service = OrderService(PostgresOrderRepo())
test = OrderService(InMemoryOrderRepo())
