From: Shigeo Kobayashi Date: 1999-11-20T13:09:08+09:00 Subject: [ruby-list:18772] Re: Why Mix-in? (Re: [book] $*, etc.) 小林です。 Re: [ruby-list:18769](まつもと ゆきひろさん投稿) > > 現状、すべてのオブジェクトはObjectのサブクラスのインスタンス > なので、モジュールがインスタンスを持つと言うことは(現在の > Rubyの仕様を変更しない限り)、そのMix-inモジュールがObjectの > サブクラスになると言うことです。それは後者と矛盾します。 > だんだん、つながってきたような... 「全てのクラスは唯一のObjectクラスから出発する。」ということを前 提にすると、根がひとつ(Object="アダム+イブ")なので、多重継承 では菱形になりやすい ==> 菱形にならないように単純継承しかでき ないようにする。すると、今度はメソッド等がどんどん溜まってしまっ て、全く使わないメソッドだらけになってしまう。そこで、子孫(サブク ラス)によっては使われないかもしれないメソッドは、別途 module に して封印する(インスタンスを持たない抽象クラス )。 子孫は困った時にだけ封印を解いて使用するか、更に何かを加えて 再度封印する(Mix-in以外のスーパークラスを持たない)というところ でしょうか? あと、Objectクラス自身が保有するメソッドなどの詳細について知り たいのですが? (ruby本の途中まできて、また最初から読んだりしているので、後半 に何が書いてあるのかよく把握していません。ペラペラめくってはい ますが。) 小林 茂雄 E-Mail: shigeo@tinyforest.gr.jp Home Page: http://www.tinyforest.gr.jp