なんじゃくにっき

プログラミングの話題中心。

Scala de Design Pattern: Proxy

 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
}
}