メソッドのフック
Posted feedbacks - Scheme
少しオーバースペックですが dynamic-wind を使うと関数への出入り(通常の呼び出し・終了、継続を使った脱出・再入)にフックをかけることができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | (define (add-hook body before after)
(lambda args
(dynamic-wind
before
(lambda () (apply body args))
after)))
(define f
(add-hook display
(lambda () (display "I have "))
(lambda () (display " sisters.") (newline))))
(f 19)
;; -| I have 19 sisters.
|


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