From: Shin-ichiro HARA Date: 2002-08-06T18:34:44+09:00 Subject: [ruby-dev:17943] Re: import-module (Re: Re: scope-in-state) 原です。 >けいじゅ@日本ラショナルソフトウェアです. >import-moduleからのclass-in-stateの特徴はオブジェクト単位に振る舞いを >変えることができることで, まともなオブジェクト指向のメカニズムと言えま >す. import-moduleからscope-in-stateの特徴は一度に多くのモジュールの振 >る舞いを変えることができることって感じでしょうか. 私的には >import-moduleから各々の目的に応じて分化したって考えられるわけです. なるほど。scope-in-state はかなり大きなプログラムが念頭にあるわけです ね。私はちょっと思いつかないけど。例えばどんな? mathn は該当する? > >しかし import-module は、複数のオブジェクトの挙動を一気に変えるのが目 > >的なので、近いのは scope-in-state です。ターゲットとしているのは、 > >Matrix#determinant とか、mean とか、ずっと問題になっている箇所を解決 > >しようとしています。(MPolynomial で、単項式順序の変更を、スピードの > >低下無しに行いたいというのも。) > >目的はわかります. ただ, プログラムはオブジェクト同士のコラボレーション >で処理が進むものなので, 1つだけのクラスの振る舞いを変えるimport-module >は不十分ではという気がしています. ふーむ。そう考えると import-module は「ワンポイント」に見えるかな。 import-module でも、例えば [クラス, モジュール] の配列の配列を引数に して def import_modules(aa, &b) if aa.empty? yield else klass, mod = aa[0] klass.import_module(mod) do import_modules(aa[1..-1], &b) end end end で、複数のインクルードができはするのですが、もっとシステマティックにや りたいわけですね。 > >なる程。私は自前で継承列を構築する scope-in-state の強引さ:-)に > >感動しました。こんなことができるんだなあと。 > >(^^;;; これはこの実装しか思いつかなかったからです. ただ, まだ, 概念設 >計段階なので実装にはまだこだわっていませんでした. そうだったんですか。私には「やれることはやってよい」と教えられた気がし て、インパクトがありました。 > >で、ちょっと刺激を受けて、エイリアスしまくるのを躊躇しないとした > >らどうか、と思って作ったのが import-module です。 > >klass.import_module(mod)した時点で, aliasするのですものね. これには気 >が付きませんでした(^^;;; scope-in-state をパクッたつもりだったんだけど、ちょっと違ったみたい。 (^^;