Jestem nowy w strukturze Play i scala i próbuję wprowadzić zależność wewnątrz obiektu towarzyszącego.Wstrzyknięcie zależności wewnątrz obiektu
Mam proste klasy sprawy, jak:
case class Bar(foo: Int) {}
Z obiektu towarzyszącego jak:
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))
}
Działa to dobrze, ale to naprawdę nie jest czysty sposób to zrobić. Chciałbym móc wstrzyknąć zależność w czasie kompilacji, aby móc wstrzykiwać różne symulowane obiekty podczas testowania i różnych rzeczywistych implementacji w fazie projektowania i produkcji.
Jaki jest najlepszy sposób, aby to osiągnąć?
Każda pomoc naprawdę doceniona. Dzięki!
myślę to, czego potrzebujesz, to tak zwany "wzór tortu". Był blog napisany przez Daniela Śpiewaka, ale nie mogę tego znaleźć. Ale ten (http://www.warski.org/blog/2011/04/di-in-scala-cake-pattern-pros-cons/) powinien być dobry jako punkt odniesienia. – MisterMetaphor
To jest [oryginalna wiadomość] (http://jonasboner.com/2008/10/06/real-world-scala-dependency-injection-di/) od Jonas Boner –