From: Joel VanderWerf Date: 2010-06-17T07:03:40+09:00 Subject: Re: Getting rid of self One style that I find myself using is to use direct access only for writes (and try to confine writes to as few methods as possible), and use indirect access everywhere else. An example (probably way too simple): class C def counters @counters ||= {} end def clear_counters @counters = nil end def bump_for x counters[x] ||= 0 counters[x] += 1 end def count_for x counters[x] || 0 end end