The InstanceFlyweightPattern is an extreme form of the FlyweightPattern. * Name: InstanceFlyweightPattern * Classification: I have no clue. * Motivation: * Applicability: Replacing value types with immutable reference types while saving memory. * Structure: ? * Participants: ? * Collaborations: ? * Consequences: Decrease on memory usage; however, some calculations might become harder because of the inability to directly manipulate new instances as an optimization. * Implementation: Memoize the 'new' method! * Sample Code: #!/usr/bin/env perl package Integer; { my %ints; sub new { my $class = shift; my $self; unless(exists($self = $ints{$_[0]})){ $self = bless {'int' => $_[0]}, $class; } $self; } } * Known Uses: Numeric types come to mind. * Related Patterns: ReverseFlyweightPattern, FlyweightPattern, SingletonPattern ---- CategoryPattern