ごとけんです

From: "Shin'ya Adzumi" <adzumi / denpa.org>
Subject: [ruby-list:31636] Re: Marshal するオブジェクトを変更したい
Date: Sat, 29 Sep 2001 15:08:48 +0900

> 具体的にはオブジェクトの内部にキャッシュを持ちたいんですよね。同じメソッ
> ドが同じ条件で呼ばれる限り再計算されずに同じ値が返ってくる。Marshal::dump
> だとそのキャッシュまで保存される。保存されて動きがおかしくなるわけでは
> ないのだけど、無駄に出力されてデータが大きくなって困る。単にこれを避け
> たいだけで。
> 
> うーん、こういうものが欲しくなるような実装方法自体がまずいのかなぁ…。

やりたいことによるとは思いますが、

  * キャッシュの管理をWeakRefに任せるとか

  * それだと困るならキャッシュを外部に持ってキャッシュの参照
    をidやメソッド経由にして直接持たないとか

ではどうでしょうか? 

-- Gotoken