[Cascavel-pm] Res: checagem de utilização de interface durante a fase de compilação

Alceu R. de Freitas Jr. glasswalk3r em yahoo.com.br
Domingo Abril 1 05:05:25 PDT 2007


Vou dar uma olhada no Class::C3, apesar de minhas pesquisas não terem encontrado nada sobre isso no CPAN.

Eu não sei qual a cisma com a linguagem Java... se você não gosta, não use. Eu pessoalmente prefiro Perl, mas seria muito interessante aplicar alguns dos recursos que não só a linguagem Java usa. O que é a palavra "interface" mais do que poder dizer de maneira resumida "todos os métodos dessa classe devem ser sobrescritos"? Pegar esse tipo de erro durante a compilação seria muito mais interessante do que durante a execução, apesar de testes unitários deverem cobrir esse tipo de coisa (isto é, quando eles são feitos).

A grande desvantagem da implementação disso em Java, por exemplo, é que é um recurso "forçado": você o ama ou deixa a linguagem. Eu acredito que poder escolher entre habilitar isso ou não no seu código seria a mesma coisa que usar atributos tipados, que podem ou não ser interessantes dependendo do que você quer fazer.

[]'s
Alceu

----- Mensagem original ----
De: Nilson Santos Figueiredo Junior <acid06 em gmail.com>
Para: Cascavel Perl Mongers <cascavel-pm em pm.org>
Enviadas: Sexta-feira, 30 de Março de 2007 23:55:51
Assunto: Re: [Cascavel-pm] checagem de utilização de interface durante a fase de compilação

On 3/30/07, Alceu R. de Freitas Jr. <glasswalk3r em yahoo.com.br> wrote:
> Existe alguma forma de checar se a utilização de um
> pacote definido como interface (aonde os métodos devem
> ser redefinidos na classe filha) durante a fase de
> compilação?

Sim, tem como isso ser feito. Não exatamente na fase de compilação,
mas antes da fase de execução. Pense em blocos CHECK e percorrer as
symbol tables recursivamente, seguindo a @ISA e checando por atributos
que indiquem que uma classe (ou método) é virtual.

Não sei se tem algum módulo pronto pra isso. Talvez o código do módulo
Class::C3 te ajude na implementação disso, caso ainda não exista.

Na prática, eu acho uma pura perda de tempo e me cheira a programador
Java (só por ter citado a palavra "interface"). No entanto, deve ser
bem legal implementar o módulo que faz isso, just for fun. ;-)

-Nilson Santos F. Jr.
_______________________________________________
Cascavel-pm mailing list
Cascavel-pm em pm.org
http://mail.pm.org/mailman/listinfo/cascavel-pm




__________________________________________________
Fale com seus amigos  de graça com o novo Yahoo! Messenger 
http://br.messenger.yahoo.com/ 


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