[Cascavel-pm] RFC: Frameworks de Orientação a Objetos

Luis Motta Campos monsieur_champs em yahoo.com.br
Domingo Maio 21 23:35:36 PDT 2006


Breno G. de Oliveira wrote:
> Aproveitando a conversa sobre OO, alguém já usou o "reform" ?
> 
> http://search.cpan.org/~hkoch/reform-0.1/lib/reform.pm
> 
> Segundo o autor, ele oferece uma sintaxe de OO menos estranha para o
> Perl 5. É claro que "estranho" depende do ponto de vista de quem vê, mas
> a proposta dele não deixa de ser interessante e pode atrair
> programadores de outras linguagens que acham Perl feio só pq sua sintaxe
> de objetos é um pouco diferente.
> 
> Com ele, é possível fazer um programa desse jeito:
> 
> -----------------8<--------------------
> use reform;                       # precisa vir antes de tudo
> 
> package Class < Base;             # heranca
> 
> fields foo,                       # declarando os campos aqui
>        bar,                       # podemos omitir as chaves em
>        baz;                       # self->{var}
> 
> sub initialize($foo, $bar, $baz)  # nao eh preciso extrair
> {                                 # parametros de @_
>     base->initialize($foo);
>     self->foo = $foo;
>     self->bar = $bar;             # referencias implicitas a instancia
>     self->baz = $baz;             # (self), e a classe base (base)
> }
> 
> sub method
> {
>     print "Hi there";
>     class->static_method();      # referencia implicita tambem para
> }                                # a propria classe (pacote)
> 
> sub get_foo
> {
>     print "Getting self->foo!";  # intercepta leituras a variavel
>     return self->{foo};          # (soh dentro de getters/settters
> }                                #  o {} eh necessario)
> 
> sub set_foo($value)
> {
>     print "Setting self->foo!";  # intercepta escritas na variavel
>     self->{foo} = $value;        # (soh dentro de getters/settters
> }                                #  o {} eh necessario)
> -----------------8<--------------------

   Breno, quão portável é isso? A gente fica obrigado a manter cópias 
desta biblioteca em todas as máquinas, além do Perl, para os programas 
funcionarem?

   BTW, eu acho sacanagem. Gosto muito do fato de não ser estritamente 
necessário obter argumentos de @_...

-- 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Luis Motta Campos is Software Engineer, Oracle OCP/DBA, Un*x
  Sysadmin, Member of {Lisbon,São Paulo,Cascavel,Brasil,London}
  Perl Mongers and Perl Fanatic Evangelist
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


Mais detalhes sobre a lista de discussão Cascavel-pm