그 바보 같은 제목 있다면 미안 해요, 난이 명확하게스칼라 -
내가 로깅 특성이 있다고 표현하는 방법을 모르는 자식 개체에 자기 형 주석 클래스를 전달합니다 다음
trait Logging {
def log(s:String)
}
과 난이
class SomeProcess { this:Logging =>
def doSomeJunk() {
log("starting junk")
...
log("junk finished")
}
}
0123처럼 사용하는 일부 구현
trait PrintlnLog extends Logging {
def log(s:String) { println(s) }
}
내가
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에 혼합 된 같은 로깅 특성에 혼합 서브 프로세스를 인스턴스화 할 ComplexProcess에서
하지만 같은이 클래스를 사용할 수 있습니다 ComplexProcess는 그것이 무엇인지 알지 못합니다. 거기에 대한 참조를 얻을 수있는 방법이 있습니까?
이것은 본질적으로 내가하고있는 일이지만,이 모든 특성이 내 코드 전체에 흩어져 있기 때문에 추악합니다. 그 목적은 cake-in 로깅에 있습니다. 더 좋은 방법이 있기를 바랐다. – dvmlls