そもそもメソッドの中で親クラスのメソッドを呼ぶタイミングがその他のロジックの前か後かはこのエントリに書いてある継承順云々とはまた違う気がする。書いてあるコードを見ても、それは普通のOOってそういうもんなんじゃないの、としか言いようがないんだが。
ちとうまく伝えることができなかったので、補足。
そもそも表題がまずかったですね。正しくは
「CatalystがPluginにNEXTを使うのが気持ち悪い説」
ですね。ごめんなさい。
で、言いたかったのはOOにおける多重継承の同一メソッド名の呼び出し順序解決としてのNEXTやClass::C3に気持ち悪さを感じているのではなくPluginにおけるメソッド拡張手段としては気持ち悪いということです。
http://b.hatena.ne.jp/miyagawa/#bookmark-6914324継承とは関係なくて、フックポイントの順序をプラグイン側できめるというCatalystの仕様に問題があるとおもう
言いたかったのはまさにこれで、CatalystのNEXTを使った仕様だと、Pluginの実装次第でフックポイント内に含まれる機能の順序が決まってしまう。更にはPluginを使う側がPluginの中の実装を意識して使わなければならないのが、気持ち悪い。というかPluginっぽさが感じられないということです。
Re: CatalystのNEXTが気持ち悪い説 - D-6 [相変わらず根無し]本来ならメソッドディスパッチ内で行う事は普通の継承範囲内で行って、Pluginは$c->run_hookみたいな形で一気に動かせばええんだろうな。
この辺を
CatalystのNEXTが気持ち悪い説 - blog#hide-k.netComponentなノリでメソッドを生やす形でメソッド追加、Pluginなノリでhookポイントに登録してメソッド拡張がよさげ。
で解決方法として言いたかったわけです。
設計思想の違いと言われればそれまでなんですけど、やっぱりPluginと名乗る以上Pluginな実装のほうがわかりやすいと思いのです。
Catalyst のフック機構について - TokuLog 改め だまってコードを書けよハゲまとめ
Catalyst は乳輪がでかすぎる
相変わらず分かりにくい。


