From: keiju@... (=?ISO-2022-JP?B?GyRCQFBETTc9PHkbKEI=?= ) Date: 1997-08-20T18:25:03+09:00 Subject: [ruby-dev:196] Re: include [Re: new sync.rb release] けいじゅ@日本ラショナルです. In [ruby-dev :00191 ] the message: "[ruby-dev:191] Re: include [Re: new sync.rb release] ", on Aug/20 17:31(JST) matz@netlab.co.jp (Yukihiro Matsumoto) writes: >まつもと ゆきひろです >|>|class Foo >|>| include Bar -> Bar.include_module(Foo) >|おお. やった!! > >採用すると言ったわけではないですからね. はいはい. >|1. >|>でも,これではモジュールがモジュールをインクルードして,別の >|>クラスがそのインクルードされたモジュールをインクルードした場 >|>合とか(ややこしい), >|この場合は実装を変えれば良いと思います. >うーん,今(わざわざ)静的になっているモジュール間のインクルー >ド関係のコードを全面的に書き換えろといっているんですか? >この件に関してはそれほどのメリットを認めていないんですけど. >ただでさえ,インクルードを動的にすることに消極的なのに. ん? 何か誤解されているかな? そういう実装を行っているFooをincludeするモジュールに限って, 全メイルの ような方法でincludeしてといっているんですが... >|2. >|>モジュールをインクルードしたクラスのサブクラスに対する初期設定とかで >|>問題が発生するか能性がありますよね(静的な処理じゃないから). > >|えーと. 2つの場合があって, Foo.module_includeが >| >|* Fooに何らかの影響を及ぼしたい時 >|* Barに何らかの影響を及ぼしたい時 >| >|がありますね. 前者のようなことを行いたいってことはあまりないんじゃない >|かと思います. 後者はサブクラスにも継承されますのであまり問題ないんじゃ >|ないでしょうか? > >後者でも継承されるものばかりとは限りませんよね.たとえば >includeされているクラス(モジュール)のテーブルを維持したいと >かいうニーズがあれば,継承では解決できませんよね. そうなるんですよね. そういう場合は無理なんでしょうねえ... インスタンスの初期化と同じなのかなぁ. と思っていたのですが, 問題は複雑 なんですねえ... あ. そうか, extendとは違って, インスタンス生成時にmodule依存のclass初 期化するというてはありますね. __ ..........................................石塚 圭樹@日本ラショナル... ----------------------------------->> e-mail: keiju@bc.mbn.or.jp <<---