извините, если это глупое название, я не знаю, как это ясно выразить
скажем, у меня есть черта ведения журнала:
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 не знает, что это такое. есть ли способ получить ссылку на него?