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

Breno G. de Oliveira breno em clavis.com.br
Sábado Maio 20 16:32:52 PDT 2006


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<--------------------


Nilson Santos Figueiredo Junior wrote:
> On 5/20/06, Flavio S. Glock <fglock em gmail.com> wrote:
> 
>>Existe um módulo novo chamado Moose, que é baseado nas idéias do Perl6
>>sobre orientação a objetos.
> 
> 
> Eu costumo fazer assim, hoje em dia: ou eu uso algo bem simples e
> tradicional, simplesmente usando Class::Accessor ou eu uso Moose.
> 
> O Moose é bem legal.
> 
> -Nilson Santos F. Jr.
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
> 
> 


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