Ich bin neu im Play Framework und Scala und ich versuche, eine Abhängigkeit in einem Companion-Objekt zu injizieren.Injizieren Sie eine Abhängigkeit in einem Objekt
Ich habe eine einfache Fallklasse, wie:
case class Bar(foo: Int) {}
Mit einem Begleiter Objekt wie:
object Bar {
val myDependency =
if (isTest) {
// Mock
}
else
{
// Actual implementation
}
val form = Form(mapping(
"foo" -> number(0, 100).verifying(foo => myDependency.validate(foo)),
)(Bar.apply)(Bar.unapply))
}
Dies funktioniert gut, aber es ist nicht wirklich eine saubere Art und Weise, es zu tun. Ich würde gerne in der Lage sein, die Abhängigkeit zur Build-Zeit zu injizieren, so dass ich verschiedene Mock-Objekte beim Testen und verschiedene reale Implementierungen in Entwicklung und Produktion injizieren kann.
Was ist der beste Weg, dies zu erreichen?
Jede Hilfe wirklich geschätzt. Vielen Dank!
Ich denke, Was Sie brauchen, ist ein sogenanntes "Kuchenmuster". Es gab einen Blogbeitrag von Daniel Spiewak, aber ich kann es nicht finden. Aber das (http://www.warski.org/blog/2011/04/diin-scala-cake-pattern-pros-cons/) sollte als Referenz dienen. – MisterMetaphor
Dies ist der [ursprüngliche Beitrag] (http://jonasboner.com/2008/10/06/real-world-scala-dependency-injection-di/) von Jonas Boner –