извините, если это глупое название, я не знаю, как это выразить ясно
скажем, у меня есть черта логирования:
trait Logging {
def log(s:String)
}
, а затем некоторая реализация
trait PrintlnLog extends Logging {
def log(s:String) { println(s) }
}
который я использую вот так
class SomeProcess { this:Logging =>
def doSomeJunk() {
log("starting junk")
...
log("junk finished")
}
}
я мог бы использовать этот класс как
val p = new SomeProcess () with PrintLog
p.doSomeJunk()
что теперь, если у меня есть это
class SubProcess { this:Logging =>
def doSubJunk() {
log("starting sub junk")
...
log("finished sub junk")
}
}
class ComplexProcess { this:Logging =>
def doMoreJunk() {
log("starting more junk")
val s = new SubProcess with // ??? <-- help!
s.doSubJunk()
log("finished more junk")
}
}
в ComplexProcess я хочу создать экземпляр смешивания SubProcess в той же особенности ведения журнала, которая была смешана с ComplexProcess, но ComplexProcess не знает, что это такое. есть ли способ получить ссылку на него?