Java による実装例だ。
いろんな実装が考えられるけど、ここでは Method オブジェクトを使ってみた。この場合、リクエストはメソッドの名前として与えられるんだ。それぞれのオブジェクトで、対応するメソッドが実装されているかどうかを調べ、ハンドラを呼び出すか、チェインをたぐって次のオブジェクトに投げるかを決定する。
|
Handler クラス |
Button クラス |
|
Dialog クラス |
Application クラス |
|
main() |
これでオッケー!Method オブジェクトを使った場合、次のような利点がある。
この利点は、ほかのメッセージ送信を用いている言語のものと同じだね。かわりに欠点としては、C++ のように switch を用いたときに比べると、パフォーマンスが悪くなりがち、というとこか。