From: nobu.nakada@... Date: 2002-08-04T23:21:58+09:00 Subject: [ruby-dev:17915] Re: [ruby-list:35696] Re: サブクラスのオブジェクト生成時に、スーパークラスの初期化を行うには ? なかだです。 At Sun, 4 Aug 2002 20:30:31 +0900, Takaaki Tateishi wrote: > 「空のRubyオブジェクト」というのは,中田さんの「使用不能」と同じ > 感じだと思いますが,何を空のオブジェクト,使用不能状態と見なすの > かは設計者/実装者に任されるということになるのでしょうか? > たとえば,Data_Wrap_Struct してRubyのオブジェクトを作るものの場合 > はもとのデータをどうやって生成するのかは実装者に任されてしまうと > 思います. そういうことでいいのではないかと、私は思ってます。個人的には、 外部のリソースを使用するようなところはinitializeに持っていく、 というのを一応の目安にしてますが。 > また,allocateで使用不能なオブジェクトを作ったことで,すべてのメ > ソッドでその使用不能状態を検出する作業が必要になるなどの場合があ > ると思います.このような場合でもallocateで使用不能状態を作るべき > かでちょっと悩んでしまいます. これはinitializeする前だけでなく、たとえばcloseされたIOなんかに も当てはまる話です。Rubyが静的な(変数でなく)オブジェクトのスコー プ(というよりライフスパンといったほうが適切?)を持たない以上、対 応は必須だと思います。 > どちらにしても,インスタンスのタイプや構造を知るというのは,具体 > 的にどのようなものでしょうか? たぶん,僕はallocateによる利点が > どこにあるのかが具体的に分かっていので,何をさせるべきかで悩んで > しまうのだと思います. 「インスタンスのタイプや構造を知る」というのがどういう意味なの か図りかねてるのですが、少なくとも今回のinitializeとnewの分離と allocation frameworkとは別の話です。allocation frameworkを持た ない1.6でも、組込みのクラスでは分離されています。 -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦