From: matz@... (Yukihiro Matsumoto) Date: 1998-04-16T12:22:00+09:00 Subject: [ruby-list:7554] Re: クラスの変更 まつもと ゆきひろです In message "[ruby-list:7509] クラスの変更" on 98/04/15, Mitsuru Ogino writes: |荻野といいます。すみませんが、ご指導ください。プログラミング初心者です。 | |大変馬鹿なことを考えているような気がしますが、あるオブジェクトが、自分自 |身のクラスを変更することというのは可能なのでしょうか? すいません.ウンチクばっかりで,もともとの話を忘れてました. |全データを読むのは効率が悪いので、改善したいのです。そこで、 |1) ファイル上にあって、メモリ上に無いデータ |2) ファイル上にあって、メモリ上に読み込まれているデータ |3) ファイル上にあるが、メモリ上で更新されているデータ |4) メモリ上にのみあり、新規にファイルを作成しないと保存できないデータ |というサブクラスを作成して扱えば、プログラム上で意識することなく、あるデー |タを参照した時点で、1)から 2)へ移行し、データを変更すれば 3)へ変化すると |いう方法を思い付いたのです。これが、そもそもの失敗なのかもしれませんが。 この4つの状態を持つことの出来るクラスを定義するのが良いと思 いますよ.その実装の方法はいろいろですが,一番簡単なのは class DataObj @body --------------------> DataObj1 end +------> DataObj2 +------> DataObj3 +------> DataObj4 というような「頭を押えるオブジェクト」と実体を分離してしまい, 状態の変更にあわせて実体を取り換えることだと思います.もちろ ん,オブジェクト数が2倍になるとか,効率が落ちるとかいう点が 気になるかもしれませんが,その時はまた別の方法を検討すると言 うことで. まつもと ゆきひろ /:|)