From: keiju@... (=?ISO-2022-JP?B?GyRCQFBETTc9PHkbKEI=?= ) Date: 1997-10-12T23:28:21+09:00 Subject: [ruby-list:4904] Re: mixin - singleton method inheritance, const etc... けいじゅ@日本ラショナルソフトウェアです. In [ruby-list :04891 ] the message: "[ruby-list:4891] mixin - singleton method inheritance, const etc... ", on Oct/11 03:22(JST) shugo@po.aianet.ne.jp (Shugo Maeda) writes: >前田です。 > >前もちょっと考えたのですが > >attr :foo, TRUE, "default value" > >としたいと思って試してみました。 おお. 昔その例がありましたね. ちょっと気になっていたのでした(^^;;; >1はextendするパターンで2はincludeするパターンです。 >モジュールのユーザーにとって,1のようにクラスをextendするのは >ちょっとわかりにくいのかなと思うのですが,どうなんでしょう。 ># 石塚さんはクラスのextendを多用されていそうですが(^^; 最初はincludeにしたかったのですが, その当時はappend_featuresもないこと もあり実現が不可能だったのと, インスタンスへの機能追加ではなくクラスへ の機能追加なのでextendでいいかと最近では割り切るようになりました. >でも2だとappend_featuresの中でメソッド定義しているのがちょっと append_featuresはうまく行く場合と行かない場合がありますしね. >苦しげですし,1.1でしか動きませんよね。 これはいいんじゃないでしょうか? いつかは1.1が正式バージョンになるわけ ですし... 私も, 1.1でしか動かないモジュールが幾つかあります. In [ruby-list :04897 ] the message: "[ruby-list:4897] Re: mixin - singleton method inheritance, const etc... ", on Oct/11 21:13(JST) matz@netlab.co.jp (Yukihiro Matsumoto) writes: >まつもと ゆきひろです > >熱がジェットコースターのように上下するので(解熱剤が聞いてい >る間は平熱で,切れると40度近くまで上がる)ふらふらです. おお. それは可哀想... 少しは良くなりましたか? >|includeで特異メソッドも継承されると,2みたいなのをもっときれい >|に書けると思うのですが,includeで特異メソッドが継承されないの >|はなぜでしょう。普通の継承では特異メソッドも継承されるのでinclude >|でも継承されるとうれしいのですが,やはり何か問題があるのでしょうか。 > >ええと,確かモジュール関数がクラスのパブリックメソッドになる >のを嫌ったのだと記憶しています.どうするのがよいんでしょうね. そういう理由でしたっけ? クラス/モジュールに継承関係があるからといっても, クラスの仮想クラス/モ ジュールの仮想クラスには継承関係がある必要はないとか何とかいう話しを聞 いた覚えが... >module_evalで定義した定数はklassに属するわけですから,静的な >スコープに含まれないのではないでしょうか? initializeでの定 >数はAttrInitMixinで定義されているものと,Objectのものだけで >すから. 定数のスコープはいろいろと難しいですよねぇ... __ ................................石塚 圭樹@日本ラショナルソフトェア... ----------------------------------->> e-mail: keiju@bc.mbn.or.jp <<---