[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