Ich habe ein ziemlich einfaches Szenario zu lösen mit DI, aber ich bin nicht in der Lage, ein richtiges Beispiel/Dokumentation zu finden, um mich durch zu kommen. Ich bin neu in der Scala/Guice Welt.Dependency Injection in Scala Guice - Übergabe von Parametern
Die aktuellen Komponenten wie folgt aussehen
trait Foo {
}
class FooImpl extends A {
}
trait Bar {
val description: String
}
class BarImpl(val description: String) extends Bar {
}
Jetzt habe ich eine Abhängigkeit zwischen Foo und Bar. Also, in der Regel würde der Code wie folgt aussehen
class FooImpl extends Foo {
Bar bar = createBar("Random Bar Value!")
}
wo createBar("Bar!")
einfach new BarImpl("Random Bar Value")
zurückgibt. Natürlich entferne ich die Fabrik/Helfer der Kürze halber.
Ich weiß, in dem Moment, in dem ich "neu" benutze, ist dies außerhalb des DI-Paradigmas. Ich möchte sicherstellen, dass Bar basierend auf einem Parameter in FooImpl injiziert werden kann. So ähnlich wie mit einer Factory. Wie verwenden wir DI in der Scala/Guice-Welt?
Ich habe mir AssistedInjection/Named Parameters angeschaut, aber ich konnte nicht verstehen, wie die Nutzung enden würde. Ich nehme an, dass das der beste Weg ist, aber ich konnte nicht verstehen, wie es geschrieben/getestet werden sollte.