0
在我上一类堆叠功能与代表团更换代表团蛋糕
trait Backend {
def product(id: Int): String
}
class MyBackend extends Backend {
def product(id: Int) = "My product"
}
class LoggingBackend(underlying: Backend) extends Backend {
override def product(id: Int) = {
println(s"get product $id")
underlying.product(id)
}
}
class CachingBackend(underlying: Backend) extends Backend { /* ... */ }
是否有可能像这样的东西替换此代码的那一刻?
trait Logging {
this : Backend =>
def product(id: Int) = {
println(s"get product $id")
/* Don't know what to write here */
}
}
class MyLoggingBackend extends MyBackend with Logging
谢谢,这工作得很好。有没有办法以某种方式注入运行时配置,比如Redis的'CachingBackend'url? – synapse