まつもと ゆきひろです

In message "[ruby-dev:17909] Re: [ruby-list:35696] Re: サブクラスのオブジェクト生成時に、スーパークラスの初期化を行うには ?"
    on 02/08/04, Takaaki Tateishi <ttate / kt.jaist.ac.jp> writes:

|Window自体はallocateで生成されてinitializeではサイズ/位置の変更を行う
|ので,生成されたWindowは無駄にはならないですよね?

でもデフォルトサイズで生成されたウィンドウが一瞬画面にちらつ
いたりする可能性があるわけですよね。initializeがほんのちょっ
と簡単になる以外にはあまりメリットは無いような。

|あるクラスでallocateを実装しないのはどのような場合で,実装する場合には
|どのようなことをallocateとinitializeで行ない,どのようなオブジェクトを
|allocateで返すべきかをきちんと理解していないので簡単に教えてもらえない
|でしょうか?

allocateは「すべてのクラス」で「未初期化のRubyオブジェクト」
を返すべきです。allocateはごくまれに生成されるインスタンスの
タイプや構造を知るためにも使われるので、できるだけなにもしな
い「空のRubyオブジェクト」を返したほうが良いと思います。

                                まつもと ゆきひろ /:|)