java / beginner
Snippet
Implementierung von Inversion of Control durch Konstruktor-Injektion
Konstruktor-Injektion folgt dem Inversion-of-Control-Muster, indem erforderliche Abhängigkeiten bei der Instanziierung der Klasse von außen übergeben werden.
snippet.java
java
1
2
3
4
5
6
7
8
9
10
11
12
13
@Servicepublic class OrderService {private final PaymentGateway paymentGateway;public OrderService(PaymentGateway paymentGateway) {this.paymentGateway = paymentGateway;}public boolean processOrder(double amount) {return this.paymentGateway.charge(amount);}}
spring
Erklärung
1
private final PaymentGateway paymentGateway;
Deklariert ein unveränderliches Abhängigkeitsfeld, das bei der Konstruktion initialisiert werden muss.
2
public OrderService(PaymentGateway paymentGateway) {
Empfängt die Abhängigkeit direkt über Konstruktorparameter, wodurch Spring das Bean injizieren kann.
3
return this.paymentGateway.charge(amount);
Delegiert den Abrechnungsvorgang an die injizierte PaymentGateway-Instanz.