今回は、AOPをScalaでやるには?ってテーマです。JavaだとAOPのライブラリを使って黒魔術的にごにょるワケですが、Scalaの場合はトレイトを使ったミックスインで実現できます。 trait Login { def login(userName:String,password:String) } trait LoggableLogin extends Login { abstract override def login(userName:String,password:String) = { println("logging start") super.login(userName,password) println("logging end") } } class DefaultLogin extends Login { def login(userName:String, pa