原です。 > まつもと ゆきひろです > |しかし、あるクラスを拡張しようとしたとき、サブクラスを作るか、 > |module を作って include するかは、未だに悩みます。 > > あるクラスに追加する機能が,そのクラスに固有なものであればサ > ブクラス,いろいろなクラスに追加できるようなものであればモジュー > ル,というのがお勧めです. なるほど。こういうことを作者にはっきり言っていただくと、あり がたいですね。指針になる。セントラルドグマ:-)としてユーザー ズガイドかグロサリに載せておいたらいかがでしょう。 > もともとモジュールってのは単純継承の枠を越えて機能の共有を行 > うためのものですから,そういう必要がなければモジュール化する > 必要はないと思います.戦略としてはとりあえずサブクラスで作っ > ておいて,使い回せそうならモジュールにするってのが私のやり方 > ですね. ふむふむ。それとは違ってしまうけれどこういう使い方はどうでしょ う。 一回しか使わなくても一連のコマンドの集まりをまとめて関数/メッ ソッドにしていまいますよね。それと同じで、一回しか使わないのに 一括りがほしい、あるいは一括りに名前を与えたいがためにモジュー ルにしてしまう、、、というもの。 既に作ったクラスをちょっと変形したい、あるいはちょっとだけ拡張 したいがためにパッチの様に使う。(まあこれは同じクラスのメソッ ドの再定義でもいいんだけど。) > |後、include するか extend するかも悩むなあ。 > > いちおうrubyはクラスベースの言語ですから,extendよりは > includeの方がよろしいのでは,と思いますです,はい.なんか, > extendとか特異メソッドとか大好きな人もいるみたいで,それはそ > れで構わないとは思うんですけど. 某I塚さんですね。(^_^) 私も最初あまり使わなかったんですが、 I塚さんが良く使われるので私も影響を受けているのです。一辺 たずねてみたかったのですが、どうして 特異メソッドと extend を多用なさるのでしょう。> 石塚さん > 原さんと後藤さんを中心にして『URLライブラリの仕様について熱 > く語る会』(略称:あすなろライブラリの会(一部に意味明瞭))を発 > 足させましょう.なあに,実装のことは心配しなくても,仕様を決 > めるだけで誰かが作ってくれますよ(私か?). いいですね。perl5 のライブラリ libwww-perl を見るとあまりに 立派過ぎてこれを作るのは容易ではないなと暗くなってしまうの ですが、python(for Win)のを今初めて見たのですが、へびのア イコンの行列で華やかというか楽しげです。こんな感じならやる 気も起ころうというもの。(「見た」のはアイコンだけだったり して。^^;) > 私は今は壁の中にいるので,あんまり「いんたーねっと」していな > いんですけど,そのうち状況が変わりそうなので,その時にはruby > のURLライブラリやCGIライブラリは是非欲しいです. おっと、やっとその気を出して来ていただいて嬉しいです。(^_^)