Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature may not be available in some browsers.
Hm wird schon ein bisschen transparenter 🙂 aber konkret interessiert mich warum z.B.
@Inject
private ImageFileEditor imageFileEditor;
besser ist als
ImageFileEditor imageFileEditor = new ImageFileEditor();
A bedeutet.class A {
B dependency = new B();
}
class A {
B dependency;
void setB(B someB) {
this.dependency = someB;
}
}
@offi genau das ist der Punkt: CDI enthält DI + magic. Wie Du schon gesehen hast, ist für DI kein Framework notwendig.was das CDI Framework noch drumherum an Magie
class A {
@Inject
private B dependency;
}
class A {
private B dependency;
public A(@Inject B b) {
dependency = b;
}
}
Mal von den anderen Kommentaren abgesehen: es geht nicht nur um die Erzeugung der Instanz, sondern auch um deren Konfiguration.In dem Moment wo A eine Methode von B benutzt muss er die Implementierung ja wieder kennen. Und dann ist es auch egal ob er B selber instanziert oder nicht
interface Zahlengenerator {
int naechsteZahl();
}
class A {
private Zahlengenerator generator;
public A(Zahlengenerator g) { generator = g; }
public void print(int anzahl) {
for (int i = 0; i < anzahl; i++) {
System.out.println(generator.naechsteZahl());
}
}
}