まつもと ゆきひろです

In message "[ruby-dev:16266] Re: pstore.rb and sync.rb"
    on 02/03/08, 石塚圭樹 <keiju / rational.com> writes:

|えー. ちょっと書き方が悪かったせいか, 色々な解釈がでていますが, これが正
|解です(^^;;; オブジェクトの初期化がしたかったんです.
|
|# さすが, まつもとさん付き合いが長い(^^;;;

どういたしまして。そういえばもう10年以上になりますねえ。

|>複数モジュールがincludeされたときには当然複数のモジュールが
|>それぞれmodule_initializeを持つことになるわけで、うっかり
|>superが呼ばれないという問題はあいかわらず発生するように思い
|>ます。
|
|ですが, 作る人と使う人がどっちが注意すべきかという問題を考えると, クラス
|側で常にsuperを呼べと言うよりは, モジュールでオブジェクトの初期化を行い
|たいなら, Module#module_initializeを呼び, かつその中ではsuper呼べという
|ならまだ問題は少なそうだと思いません?

現状の「initializeで必ずsuperを呼べ」よりは少ないのは認めま
しょう。

|  Mod.initialize_for(obj)
|
|が呼ばれるというのは?

そーですねえ。superの問題はなくなりますね。ただ、objのメソッ
ドでないので内部構造にアクセスしにくい(ので、きっとインスタ
ンスメソッドを呼び返すことになる)というのは嬉しいのか嬉しく
ないのか分かりませんね。

それと、ややオブジェクト生成のコストが上がるのが気になるとい
えば気になります。

                                まつもと ゆきひろ /:|)