我是新來的Play框架和Scala,我試圖注入一個依賴內的伴侶對象。注入一個對象內的依賴
我有一個簡單的例子類,如:
case class Bar(foo: Int) {}
有了這樣一個同伴對象:
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))
}
這工作得很好,但它不是一個真正的乾淨的方式來做到這一點。我希望能夠在構建時注入依賴,以便在開發和生產中測試和實現不同的實現時注入不同的模擬對象。
達到此目的的最佳方法是什麼?
任何幫助真的很感激。謝謝!
我想你需要的是一個所謂的「蛋糕模式」。 Daniel Spiewak發表了一篇博客文章,但似乎無法找到它。但是這(http://www.warski.org/blog/2011/04/di-in-scala-cake-pattern-pros-cons/)應該是一個很好的參考。 – MisterMetaphor 2013-03-15 09:53:00
這是來自Jonas Boner的[原文](http://jonasboner.com/2008/10/06/real-world-scala-dependency-injection-di/) – 2013-03-15 10:52:56