From: "中村暁史 Nakamura Akifumi" Date: 2000-06-18T13:41:00+09:00 Subject: [ruby-list:23337] Re: xmarshal.rb お世話になっております。 A.中村です。 On Sun, 18 Jun 2000 03:56:19 +0900 Masatoshi SEKI wrote: > > 永続対応オブジェクトのコンストラクタが > > ある決まりきったパターンの引数を取る > > (たとえば0個とか)ってのは、他の言語でも > > 比較的良く見かける制約なようなきがしますが、 > むしろ制限されるべきということでしょうか? はい。少なくとも今まではそう思っていました。 > Smalltalkとうまく比較できるかな。 > basicNew とか become: とかありますよね。 あう。basicNewはPrimitiveっすね>Squeak。 becomeが見つからぬ… まーSmalltalkがSmalltalkで書かれてるってことは どっかこっかにはメソッドあるんでしょうけど。 > 永続化によるコンストラクタの制約はないと思います。 > #イメージファイルは永続化されたSmalltalkのインスタンス ええっと。イメージファイルって「メモリそのもの」ですよね。 #実装方法はさておき。 論理的(笑)に、コンストラクタを経由してないのでわ。 ディスクに落ちても、オブジェクトから見れば違う環境には なってないわけで。メモリ上で存在した任意の隣人は ディスクに落ちてもまだ居るし、存在しなかった隣人が 沸いて出ることもない。街ごと移動してるだけ。 だから例えばクラスだってそのまま保存される (ので、そのクラスの新規性(笑)を問う必要がない。 どうせアルんだから)し。 永続化でコンストラクタが「必要になる」場面ってのは 「遷化」ですよね。コノヨからアノヨに(逆でもいいが) オブジェクトが引越しするときに、オブジェクトIDを 割り当て直さないとならない、というそういう場合に 必要になるのかなと。 #複数のイメージファイルのマージ、っていう概念は #あるんでしたっけ?もし有るならばその際には #オブジェクトの「引越し」が生じるわけなので。 まぁそれ言い出したらきりがないのかな。 もしRubyがRubyで書かれるようになったら話はかわるかも。