Very nice :D<div>Valeu pelas ótimas referências, vou pesquisar aqui.</div><div>++Eden, pq não escreve um artigo sobre o Bread::Board?<br clear="all"><br>ABS()<br><br>
<br><br><div class="gmail_quote">On Thu, Mar 22, 2012 at 13:52, Daniel Vinciguerra <span dir="ltr"><<a href="mailto:dan.vinciguerra@gmail.com">dan.vinciguerra@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Se este for o caso! então...<div><a href="http://search.cpan.org/~swalters/Object-PerlDesignPatterns-0.03/PerlDesignPatterns.pm#FlyweightPattern" target="_blank">http://search.cpan.org/~swalters/Object-PerlDesignPatterns-0.03/PerlDesignPatterns.pm#FlyweightPattern</a><br clear="all">



<br>[]'s<div class="im"><br><br><br><b>Daniel Vinciguerra</b><br>
Web Solutions Architect and Co-Owner at Bivee<br><span style="font-family:arial,sans-serif;font-size:13px;border-collapse:collapse"><a href="http://github.com/dvinciguerra" style="color:rgb(28,81,168)" target="_blank">http://github.com/dvinciguerra</a></span><span style="font-family:arial,sans-serif;font-size:13px;border-collapse:collapse"><a href="http://github.com/dvinciguerra" style="color:rgb(28,81,168)" target="_blank"></a></span><br>




<br><br></div><div><div class="h5"><div class="gmail_quote">On 22 March 2012 13:01, Marcio Ferreira <span dir="ltr"><<a href="mailto:marciodesouzaferreira@gmail.com" target="_blank">marciodesouzaferreira@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<p>Li a thread do fim pro começo e parece que um Flyweight - até sugerido pelo Eden - resolve isso.</p>
<p>Design Pattern resolve 99% dos problemas do dia-dia =P</p><div><div>
<div class="gmail_quote">On Mar 22, 2012 12:29 PM, "Eden Cardim" <<a href="mailto:edencardim@gmail.com" target="_blank">edencardim@gmail.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">




>>>>> "Tiago" == Tiago Peczenyj <<a href="mailto:tiago.peczenyj@gmail.com" target="_blank">tiago.peczenyj@gmail.com</a>> writes:<br>
<br>
    Tiago> Humm... analisando o seu problema parece que o primeiro passo é<br>
    Tiago> criar um repositorio que sabe "criar" os seus objetos. Vejo um<br>
    Tiago> problema que é saber se o objeto esta inativo ou não, vc teria que<br>
    Tiago> trabalhar com o destrutor.<br>
<br>
Pensando bem, acho que o que o OP, quis dizer com ativo/inativo é que ele<br>
talvez ele queira objetos com atributos intrínsecos (imutáveis) e extrínsecos<br>
(mutáveis). Nesse caso, se "configura" o objeto singleton que vem do pool com<br>
um outro objeto (o contexto), que em perl pode ser qualquer coisa, pra<br>
baratear o custo de criação, e o Moose já vem com suporte pra tudo isso:<br>
<br>
--8<---------------cut here---------------start------------->8---<br>
package MyObj;<br>
<br>
has foo => (isa => 'Foo', is => 'ro', required => 1);<br>
has bar => (<br>
  isa => 'HashRef',<br>
  is => 'rw',<br>
  clearer => 'clear_bar',<br>
  predicate => 'is_active',<br>
  traits => ['Hash'],<br>
  handles => {<br>
    baz => [ get => 'baz' ],<br>
    quux => [ get => 'quux' ]<br>
  }<br>
);<br>
<br>
package main;<br>
my $pool = container 'MyApp' => as {<br>
  service 'myobj' => (<br>
    class => 'MyObj',<br>
    lifecycle => 'Singleton',<br>
    dependencies => depends_on('foo')<br>
  );<br>
  service 'foo' => 'bahhhh';<br>
};<br>
<br>
my $obj = $pool->resolve(service => 'myobj'); # pegar objeto singleton<br>
my $guard = guard { $obj->clear_bar }; # criar "desativador"<br>
<br>
$obj->is_active; # false<br>
<br>
$obj->bar({ baz => 'moo', quux => 'oink' }); # configurar o contexto<br>
<br>
$obj->is_active; # true<br>
$obj->foo; # bahhhh<br>
$obj->baz; # moo<br>
$obj->quux; # oink<br>
--8<---------------cut here---------------end--------------->8---<br>
<br>
--<br>
      Eden Cardim         Need help with your Catalyst or DBIx::Class project?<br>
      Code Monkey                 <a href="http://www.shadowcat.co.uk/catalyst/" target="_blank">http://www.shadowcat.co.uk/catalyst/</a><br>
 Shadowcat Systems Ltd.    Want a managed development or deployment platform?<br>
 <a href="http://edencardim.com" target="_blank">http://edencardim.com</a>            <a href="http://www.shadowcat.co.uk/servers/=begin" target="_blank">http://www.shadowcat.co.uk/servers/<br>
=begin</a> disclaimer<br>
   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
 SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br>
 L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
=end disclaimer<br>
</blockquote></div>
</div></div><br>=begin disclaimer<br>
   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
 SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br>
 L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
=end disclaimer<br>
<br></blockquote></div><br></div></div></div>
<br>=begin disclaimer<br>
   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
 SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
 L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
=end disclaimer<br>
<br></blockquote></div><br></div>