woshidan's loose leaf

ぼんやり勉強しています。

Chain of Responsibilityパターン

処理できる人が出来るまで、オブジェクトの間を渡り歩いていくクラスですが、実は、実装方面では今のところ余り気にした事がありません。

ただ、メソッドを書くときにいつも気にしている気がします。 RubyJavaScriptではいつも、あるオブジェクトのメソッドを呼んだとき、そのオブジェクトのプロパティの中にメソッドが見つからなかったら、継承元のオブジェクトに覗きにいくということが行われていて、これがそれっぽいなぁ、と思いました。

基本的な機能は継承元のオブジェクトに書いておいて、継承先のオブジェクトで、そのオブジェクトで特別に処理したいものに集中してコードを書く、という風なことが出来るんですね、と思ったんですが、これブリッジで言う機能の階層なのだろうか...。

Rubyで例外を処理するクラスと例外をキャッチしたり投げたりする処理を書くときにも似ていますね。

全部、なんらかの方法で、自分の持っているメソッドでは処理が出来ない、ということを伝える方法を用意しておく、というのがミソっぽいです。

JavaScriptフレームワークを使うときに特に意識しておくといいのかな、と思います。