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

Alceu R. de Freitas Jr. glasswalk3r em yahoo.com.br
Segunda Abril 2 09:59:12 PDT 2007


--- Eden Cardim <edencardim em gmail.com> escreveu:

> Acho que não, por dois motivos:
> 1 - Não tem como saber, sem executar o código, quais
> métodos o cliente
> vai pedir pro Class::Accessor criar, então não vai
> dar pra marcar.

Mas Eden, eu não vou marcar os métodos da subclasse,
que talvez use o Class::Accessor para gerar esses
métodos, mas sim na superclasse. Pelo menos foi nisso
que pensei, se é aplicável ou não eu ainda tenho que
testar.

A idéia seria fazer assim na superclasse:

sub change_me {

    die "One must override this method";

}

E alterar para algo assim:

sub change_me :override {

    die "One must override this method";

}

O atributo override permitiria verificar se o método
chamado foi definido na subclasse ou na superclasse, e
no segundo caso gerar uma exceção.

Eu mesmo nunca tentei manipular a tabela de símbolos
ou o @ISA, então não se é possível fazer isso na fase
de compilação.

> Mesmo com verificação, alguém pode modificar a
> tabela de símbolos para
> evitar que as verificações sejam feitas.

A idéia nem é essa: se o programador quiser atirar no
pé dele, o Perl vai deixar.

[]'s


Alceu Rodrigues de Freitas Junior
--------------------------------------
glasswalk3r em yahoo.com.br
http://www.imortais.cjb.net
-----------------------------------------------------------------------
A well-used door needs no oil on its hinges.
A swift-flowing stream does not grow stagnant.
Neither sound nor thoughts can travel through a vacuum.
Software rots if not used.
These are great mysteries -- The Tao Of Programming, 5.1

__________________________________________________
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