メソッドのフック
Posted feedbacks - Scala
traitを使ってみました。フックを差し込むクラスは finalでない必要があります。 参考URL: http://jonasboner.com/2008/02/06/aop-style-mixin-composition-stacks-in-scala/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | trait ReaderInterceptor {
def read() :Int
}
trait ReaderInterceptorExample extends ReaderInterceptor {
abstract override def read() :Int = {
val result = super.read
if(result != -1) println("character: " + result.toChar)
result
}
}
object Main extends Application {
import java.io._
val reader = new StringReader("ABCDE") with ReaderInterceptorExample
var ch :Int = 0
while({ch = reader.read; ch != -1}){}
}
|

todogzm
#6017()
Rating0/8=0.00
例えば、あるクラスのあるメソッドを実行する前に他の処理を呼びたい(例えばログやトランザクション開始など)。 また、そのメソッドの終了後にも何らかの後処理を呼びたい(トランザクション終了など)。
そのような、メソッドに対するフック処理を書いてください。 ライブラリを使用してメソッドのフックを実現した場合は ライブラリの名前を紹介してくれると助かります。
[ reply ]