From: NAKAMURA Akifumi Date: 2008-01-06T00:52:48+09:00 Subject: [ruby-list:44444] Re: コンストラクタの引数について&インスタンス変数の持ち方について Akira Hayakawa さんは書きました: > ぼくの考えからいうと、 > PCは > > def initialize(display, box, keyboard) > > となるべきです。 というか、 個人の考えをコンストラクタにぶつけても しょーがないんじゃないかなあ… class PC def self.new_for_Hayakawa_san(display, box, keyboard) .... ならOKですよきっと(^^; 言語の微妙な相違の話としてですが、 Rubyのコンストラクタって結局は 特に特別のことが有るわけでもない クラスメソッド(インスタンスメソッドではないという意味で) ですよね。 だから欲しければ作ってしまえばいいや。 あるいはクラスのほうを class PC_for_Hayakawa_san def initialize(display, box, keyboard) .... にしちゃうのもOKですかね。 状況次第(一般論は存在しません)では 1つの例えばPCクラスを 複数のプログラムで共用したいかも知れないんで、 そういう場合は 1つのクラスに複数の 「それぞれの都合に合わせたコンストラクタもどき」 を作っちゃえばいいかなと。 > 車やさんとしては、タイヤやさんがどういう製法で作ろうが、どんな形をしてようが、 > とりあえずタイヤとして機能するものであればなんでもいい。 > だからタイヤのインスタンスを引数をとるべきではないのですか? 「なんでもいい」と言い切れるかどうかは車やさんの事情次第だ、 ということじゃないでしょうか? Hayakawa自動車株式会社、の事情ならば Hayakawaさんが明確に決めれるかも知れません。