メソッドのフック
Posted feedbacks - Common Lisp
CLOS だと、単に:before, :after で追加定義するだけ。
1 2 3 4 5 6 7 8 9 10 11 12 | (defclass name () ())
(defmethod say ((n name) string)
(format t "~A" string))
(defmethod say :before ((n name) string)
(princ "Hello,"))
(defmethod say :after ((n name) string)
(princ " speaking."))
(say (make-instance 'name) "Bobby")
;Hello,Bobby speaking.
|


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