Hallo zusammen,
ich habe folgendes Szenario:
Ich habe eine Bean (Session Scoped) A. Diese Bean A erstellt eine Instanz einer Klasse, die das Interface B implementiert, mittels einer Factory.
Nun habe ich das Problem, dass ich von B heraus eigentlich eine Methode aus A aufrufen müsste. Wie gehe ich nun vor? Soll ich die aktuelle Instanz von A als Parameter übergeben? Oder ist das hässlich, wenn ich eigentlich mit CDI arbeite?
Allerdings erstellt MyFactory ja nur eine Instanz einer Klasse, die B implementiert und von diesen Klassen habe ich ca. 15 verschiedene. Ist es hier dann üblich, dennoch mit bspw. RequestScoped Beans für jede dieser 15 verschiedenen zu arbeiten? Wäre ja durchaus möglich, dass ich dann jeweils eine Instanz mittels CDI zurückliefere.
Was ist denn hier BestPractice?
Danke
Mike
ich habe folgendes Szenario:
Ich habe eine Bean (Session Scoped) A. Diese Bean A erstellt eine Instanz einer Klasse, die das Interface B implementiert, mittels einer Factory.
Code:
@Named
@RequestScoped
public class A() {
public void doSomething() {
B b = MyFactory.createB();
b.doSomthingElse();
}
}
Nun habe ich das Problem, dass ich von B heraus eigentlich eine Methode aus A aufrufen müsste. Wie gehe ich nun vor? Soll ich die aktuelle Instanz von A als Parameter übergeben? Oder ist das hässlich, wenn ich eigentlich mit CDI arbeite?
Code:
@Named
@RequestScoped
public class A() {
public void doSomething() {
B b = MyFactory.createB(this);
b.doSomthingElse();
}
}
Allerdings erstellt MyFactory ja nur eine Instanz einer Klasse, die B implementiert und von diesen Klassen habe ich ca. 15 verschiedene. Ist es hier dann üblich, dennoch mit bspw. RequestScoped Beans für jede dieser 15 verschiedenen zu arbeiten? Wäre ja durchaus möglich, dass ich dann jeweils eine Instanz mittels CDI zurückliefere.
Was ist denn hier BestPractice?
Danke
Mike