From: Bob Hutchison Date: 2005-09-28T01:24:42+09:00 Subject: Re: Class and Iterator Design Question On Sep 27, 2005, at 11:49 AM, Jim Freeze wrote: > This may be a silly design question, but I always balk at > the right answer when I am confronted with it. I don't think this is a silly question at all. I'm having to deal with it myself right now. I never seem to come up with the same answer twice in a row. [snip] > In other words, for classes that manage a list of items, > do people prefer to see a custom iterator, such as #each_, > or do they prefer getting back an array and iterating > over it themselves, such as #.each? > > Pea.new.each_pod { |pod| ..do stuff.. } > Pea.new.pods.each { |pod| ..do stuff.. } > There is another possibility, have the pods accessor return a (shallow) copy of the original. I've done all three. These days I just return the array and let the user do what they want. This saves me a lot of work at the risk of potentially ruining the integrity of the object structure. Seemed like a good idea at the time, but putting it that way... :-) Actually I don't think it is that bad. If I was worried, I'd return a copy. I don't think I'd go the each_pod route. Who knows what I'm going to think tomorrow. Cheers, Bob > Cheers > -- > Jim Freeze > > ---- Bob Hutchison -- blogs at Recursive Design Inc. -- Raconteur --