in reply to Re: Re: Where/When is OO useful?
in thread Where/When is OO useful?
I go one step further than "fly weight objects". I take a
lexical hash for each attribute, and index those with the
object. This means you never have to use string literals to
access attributes (and hence you get the full benefit of
using strict), and you only need one hash query instead of
two to access the attribute.
Here's my implementation of the BaseballPlayer::Pitcher class. It's totally independent of the implementation of the BaseballPlayer class (although it could be that you want to mask the constructor - but that's ok because the constructor is part of the API). I call this technique "Inside Out Objects" (people who saw my presentation at YAPC know all about it).
package BaseballPlayer::Pitcher; { use vars '@ISA'; @ISA = 'BaseballPlayer'; my (%ERA, %Strikeouts); sub ERA : lvalue {$ERA {+shift}} sub Strikeouts : lvalue {$Strikeouts {+shift}} sub DESTROY { my $self = shift; delete $ERA {$self}, $Strikeouts {$self} } }
Abigail
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Re: Where/When is OO useful?
by sauoq (Abbot) on Sep 10, 2002 at 19:42 UTC | |
Re: Re: Where/When is OO useful?
by Anonymous Monk on Aug 28, 2002 at 03:16 UTC | |
by Abigail-II (Bishop) on Aug 28, 2002 at 07:53 UTC | |
Re: Re: Where/When is OO useful?
by scrottie (Scribe) on Jun 14, 2003 at 09:25 UTC |
In Section
Meditations