Proxyパターン。
クラスの関数へのコールをフックする。
Decoratorパターンと実装の形は似た感じに。
trait Hoge {
def doStuff: Unit
}class HogeImpl extends Hoge {
def doStuff = println("hoge")
}trait Proxy extends Hoge {
abstract override def doStuff = {
println("before")
super.doStuff
println("after")
}
}object Main {
def main(args: Array[String]) = {
val hoge = new HogeImpl with Proxy
hoge.doStuff
}
}