我是新来的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