Sono nuovo per Play framework e scala e sto cercando di iniettare una dipendenza all'interno di un oggetto associato.Iniettare una dipendenza all'interno di un oggetto
Ho una semplice classe caso, come:
case class Bar(foo: Int) {}
Con un oggetto associato come:
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))
}
Questo funziona bene, ma non è davvero un modo pulito per farlo. Mi piacerebbe essere in grado di iniettare la dipendenza al momento della compilazione in modo da poter iniettare oggetti mock diversi durante il test e diverse implementazioni reali nello sviluppo e nella produzione.
Qual è il modo migliore per raggiungere questo obiettivo?
Qualsiasi aiuto davvero apprezzato. Grazie!
penso quello di cui hai bisogno è un cosiddetto "modello di torta". C'era un post sul blog di Daniel Spiewak, ma non riesco a trovarlo. Ma questo (http://www.warski.org/blog/2011/04/di-in-scala-cake-pattern-pros-cons/) dovrebbe essere un buon riferimento. – MisterMetaphor
Questo è il [post originale] (http://jonasboner.com/2008/10/06/real-world-scala-dependency-injection-di/) di Jonas Boner –