NAME
Scope::Session::Flyweight - Attach light-weight instance creation for Scope::Session
VERSION
Version 0.01
SYNOPSIS
work as factory
use Scope::Session::Flyweight;
my $flyweight
= Scope::Session::Flyweight->acquire( q|Test::Object| => ( id => 10 ) );
my $flyweight2
= Scope::Session::Flyweight->acquire( q|Test::Object| => ( id => 10 ) );
work as role
package Test::Object;
use Scope::Session::Flyweight acquire => 1;
sub identifier {
my ( $class, %args ) = @_;
return $args{id};
}
sub new {
my ( $class, %args ) = @_;
return bless {%args} => $class;
}
my $flyweight = Test::Object->acquire( id => 10 );
my $flyweight2 = Test::Object->acquire( id => 10 );
METHODS
acquire
TARGET CLASS
target class must be implemented following methods.
indentifier
get constructor options and return object identity string.
new
create instance
get a same identifier instance
AUTHOR
Daichi Hiroki, <hirokidaichi<AT>gmail.com>
LICENSE AND COPYRIGHT
Copyright 2009 Daichi Hiroki.
This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.
See http://dev.perl.org/licenses/ for more information.