ich bin gerade am Rumprobieren mit Dependency Injection als Framework benutze ich Guice - das sollte hier aber unerheblich sein.
Meine Frage betrifft den Umbau von Konstruktoren ein Beispiel:
ohne DI:
mit DI:
Die Frage die sich mir stellt betrifft natürlich "parameter" - der soll nicht injiziert werden. Was soll ich mit dem machen?
Nun habe ich etwas über DI gelesen aber immer nur gefunden, dass man die Abhängigkeiten eben im Constructor sichtbar machen soll, aber was mit den normalen Parametern passieren soll steht nirgends.
Ich scheue mich etwas davor den Parameter über einen Setter zu setzen (ohne ihn ist die Instanz sinnlos). Nun frage ich mich wie das "best practice"-pattern dazu aussieht.
Meine Frage betrifft den Umbau von Konstruktoren ein Beispiel:
ohne DI:
Java:
public class MyClass {
private C1 c1 = new C1impl();
private C2 c2 = new C2impl();
private SomeClass parameter;
public MyClass(SomeClass parameter){
this.parameter =parameter;
...
}
...
}
mit DI:
Java:
public class MyClass {
private C1 c1;
private C2 c2;
private SomeClass parameter;
@Inject
public MyClass(SomeClass parameter, C1 c1, C2 c2){
this.parameter =parameter;
this.c1=c1;
this.c2=c2;
...
}
...
}
Die Frage die sich mir stellt betrifft natürlich "parameter" - der soll nicht injiziert werden. Was soll ich mit dem machen?
Nun habe ich etwas über DI gelesen aber immer nur gefunden, dass man die Abhängigkeiten eben im Constructor sichtbar machen soll, aber was mit den normalen Parametern passieren soll steht nirgends.
Ich scheue mich etwas davor den Parameter über einen Setter zu setzen (ohne ihn ist die Instanz sinnlos). Nun frage ich mich wie das "best practice"-pattern dazu aussieht.