Joel VanderWerf
10/5/2006 4:35:00 AM
Gavin Kistner wrote:
> From: Joel VanderWerf [mailto:vjoel@path.berkeley.edu]
>> Joel VanderWerf wrote:
>>> Use closures and class scopes:
>>>
>>> class Foo
>>> tmp1 = ExpensiveObject.new
>>> tmp2 = ExpensiveObject.new
>> Assuming you want to share the tmp1 and tmp2 among all instances of the
>> class, which probably you don't want. Sorry.
>
> No, I very much do - each object is only needed as a 'scratch' pad for performing calculations within the method; before and after the method I don't care about the value. Your idea has interesting merit. I hadn't thought of closing and re-opening the class to 'reset' the closure scope. Or (for that matter) of using define_method to create a method as a closure as both you and David suggested.
Watch out for threads, then. If your program can have multiple threads
running these calculations, a mutex will keep them from fighting over
the expensive objects.
--
vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407