From: keiju@... (=?ISO-2022-JP?B?GyRCQFBETTc9PHkbKEI=?= ) Date: 1997-12-15T12:33:42+09:00 Subject: [ruby-dev:1089] Re: [Req] object refference けいじゅ@日本ラショナルソフトウェアです. In [ruby-dev :01086 ] the message: "[ruby-dev:1086] Re: [Req] object refference ", on Dec/15 11:50(JST) Yukihiro Matsumoto writes: >まつもと ゆきひろです >|昔, object idからオブジェクトの実体を取り出す話しが出ていましたが, そ >|の改良案です. > >(中略) > >|いかがでしょう? > >うーん,まだイメージが掴めません.もうちょっと説明して頂けま >せん? 特に動作原理のあたり. オブジェクトを参照するクラスをReferとします. idから元のオブジェクトが取り出せるのはいいですよね? というか, 取り出せ るんですよね? # 取り出せないと前提が狂う... ref = Refer.new(obj1) # or ref = Refer(obj1) obj2 = ref.refer obj1.equal?(obj2) ---------------- true って感じです. 多分, 気になるのはGCの辺りだと思うんですが, そのオブジェクトがGCされる 時に, そのオブジェクトを参照しているReferの状態を参照不可にしてあげる だけです. referをとる時にはその状態をチェックして不可なら例外を発生さ せるわけです. # objがGCされた後 obj = ref.refer ----- Exception: "Illegal Object Reference" PS. これからnon internet な世界にいきます(;_; __ ................................石塚 圭樹@日本ラショナルソフトェア... ----------------------------------->> e-mail: keiju@rational.com <<---