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