mardi 17 mars 2015

Inheritance caching patterns in ruby

Say I have a parent class:



class Stat

def val
raise "method must be implemented by subclass"
end

end


And a subclass:



class MyStat < Stat

def val
#performs costly calculation and returns value
end

end


By virtue of extending the parent class, I would like the subclass to not have to worry about caching the return value of the "val" method.


There are many patterns one could employ here to this effect, and I've tried several on for size, but none of them feel right to me and I know this is a solved problem so it feels silly to waste the time and effort. How is this most commonly dealt with?


Also, it's occurred to me that I may be asking the wrong questions. Maybe I should't be using inheritance at all but composition instead.


Any and all thoughts appreciated.


Aucun commentaire:

Enregistrer un commentaire