challenge メソッドのフック

例えば、あるクラスのあるメソッドを実行する前に他の処理を呼びたい(例えばログやトランザクション開始など)。 また、そのメソッドの終了後にも何らかの後処理を呼びたい(トランザクション終了など)。

そのような、メソッドに対するフック処理を書いてください。 ライブラリを使用してメソッドのフックを実現した場合は ライブラリの名前を紹介してくれると助かります。

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.

Index

Feed

Other

Link

Pathtraq

loading...