From: SASADA Koichi Date: 2009-02-11T03:32:41+09:00 Subject: [ruby-dev:37961] Re: proposal: Module#method_adding  ささだです. Tadashi Saito wrote:: > old_fooというようなaliasを作る方法には問題があると思うので、それを推奨する > ような方向の変更には自分は反対です。 > > http://d.hatena.ne.jp/rubikitch/20080504/1209835550 > http://blog.jayfields.com/2008/04/alternatives-for-redefining-methods.html > > たとえばですが、fooというメソッドがold_fooとしてaliasされた後、fooがオーバーライド > されたとします。そのfooを含むスクリプトが他の人にも利用され、再度オーバーライドされたとき、 > 同じようにold_fooという名前でaliasが作成されない保証がどこにあるでしょうか。 > old_という名前を付ける、という行為を複数の人間が思いつくのは、よくありそうなことです。 > > そのような時は、無限ループになってしまいます。  まぁ,単純な例を出しましたが,他にもオーバーライドしそうになったら例外 を発生させたい,とか. # それこそ,old_foo を再度作ろうとしたときとか. # あ,alias でもちゃんと method_added は呼ばれるんですね.  old_foo については,名前の衝突しなさそうな方法は考えれば色々あるように も思います.  old_foo を安易に作ることはまずいかもしれませんが,提案自体は本質的には それを助長することとは無関係に思えます. # 出す例を間違えたかも -- // SASADA Koichi at atdot dot net