只要您只对每个类型化组件的唯一组件感兴趣,参数化组件就可以很好地与蛋糕模式配合使用,例如:
trait AComponent[T] {
val a:A[T]
class A[T](implicit mf:Manifest[T]) {
println(mf)
}
}
class App extends AComponent[Int] {
val a = new A[Int]()
}
new App
现在我的应用程序需要我注入一个 A[Int] 和一个 A[String],显然 scala 的类型系统不允许我扩展 AComponent 两次。这种情况下的常见做法是什么?