Ou grava um screencast! On Thu, Mar 22, 2012 at 5:01 PM, Stanislaw Pusep <[email protected]> wrote: > Very nice :D > Valeu pelas ótimas referências, vou pesquisar aqui. > ++Eden, pq não escreve um artigo sobre o Bread::Board? > > ABS() > > > > > On Thu, Mar 22, 2012 at 13:52, Daniel Vinciguerra > <[email protected]> wrote: >> >> Se este for o caso! então... >> >> http://search.cpan.org/~swalters/Object-PerlDesignPatterns-0.03/PerlDesignPatterns.pm#FlyweightPattern >> >> []'s >> >> >> >> Daniel Vinciguerra >> Web Solutions Architect and Co-Owner at Bivee >> http://github.com/dvinciguerra >> >> >> On 22 March 2012 13:01, Marcio Ferreira <[email protected]> >> wrote: >>> >>> Li a thread do fim pro começo e parece que um Flyweight - até sugerido >>> pelo Eden - resolve isso. >>> >>> Design Pattern resolve 99% dos problemas do dia-dia =P >>> >>> On Mar 22, 2012 12:29 PM, "Eden Cardim" <[email protected]> wrote: >>>> >>>> >>>>> "Tiago" == Tiago Peczenyj <[email protected]> writes: >>>> >>>> Tiago> Humm... analisando o seu problema parece que o primeiro passo >>>> é >>>> Tiago> criar um repositorio que sabe "criar" os seus objetos. Vejo um >>>> Tiago> problema que é saber se o objeto esta inativo ou não, vc teria >>>> que >>>> Tiago> trabalhar com o destrutor. >>>> >>>> Pensando bem, acho que o que o OP, quis dizer com ativo/inativo é que >>>> ele >>>> talvez ele queira objetos com atributos intrínsecos (imutáveis) e >>>> extrínsecos >>>> (mutáveis). Nesse caso, se "configura" o objeto singleton que vem do >>>> pool com >>>> um outro objeto (o contexto), que em perl pode ser qualquer coisa, pra >>>> baratear o custo de criação, e o Moose já vem com suporte pra tudo isso: >>>> >>>> --8<---------------cut here---------------start------------->8--- >>>> package MyObj; >>>> >>>> has foo => (isa => 'Foo', is => 'ro', required => 1); >>>> has bar => ( >>>> isa => 'HashRef', >>>> is => 'rw', >>>> clearer => 'clear_bar', >>>> predicate => 'is_active', >>>> traits => ['Hash'], >>>> handles => { >>>> baz => [ get => 'baz' ], >>>> quux => [ get => 'quux' ] >>>> } >>>> ); >>>> >>>> package main; >>>> my $pool = container 'MyApp' => as { >>>> service 'myobj' => ( >>>> class => 'MyObj', >>>> lifecycle => 'Singleton', >>>> dependencies => depends_on('foo') >>>> ); >>>> service 'foo' => 'bahhhh'; >>>> }; >>>> >>>> my $obj = $pool->resolve(service => 'myobj'); # pegar objeto singleton >>>> my $guard = guard { $obj->clear_bar }; # criar "desativador" >>>> >>>> $obj->is_active; # false >>>> >>>> $obj->bar({ baz => 'moo', quux => 'oink' }); # configurar o contexto >>>> >>>> $obj->is_active; # true >>>> $obj->foo; # bahhhh >>>> $obj->baz; # moo >>>> $obj->quux; # oink >>>> --8<---------------cut here---------------end--------------->8--- >>>> >>>> -- >>>> Eden Cardim Need help with your Catalyst or DBIx::Class >>>> project? >>>> Code Monkey http://www.shadowcat.co.uk/catalyst/ >>>> Shadowcat Systems Ltd. Want a managed development or deployment >>>> platform? >>>> http://edencardim.com http://www.shadowcat.co.uk/servers/ >>>> =begin disclaimer >>>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >>>> SaoPaulo-pm mailing list: [email protected] >>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >>>> =end disclaimer >>> >>> >>> =begin disclaimer >>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >>> SaoPaulo-pm mailing list: [email protected] >>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >>> =end disclaimer >>> >> >> >> =begin disclaimer >> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >> SaoPaulo-pm mailing list: [email protected] >> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >> =end disclaimer >> > > > =begin disclaimer > Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ > SaoPaulo-pm mailing list: [email protected] > L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> > =end disclaimer >
-- Tiago B. Peczenyj Linux User #405772 http://pacman.blog.br =begin disclaimer Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ SaoPaulo-pm mailing list: [email protected] L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> =end disclaimer
