[Cascavel-pm] evitando estruturas "switch-case" em métodos de uma classe

Igor Sutton Lopes igor.sutton em gmail.com
Quarta Março 28 09:59:05 PDT 2007


On 2007/03/28, at 17:56, Alceu R. de Freitas Jr. wrote:

> Olá monges,
>
> Estou com uma dúvida sobre como evitar estruturas
> "switch-case" dentro de métodos de uma dada classe.
>
> Por exemplo, se eu tenho uma classe que pode exportar
> seus valores para diversos formatos, por exemplo:
>
> sub to_xml() {}
> sub to_html() {}
> sub to_csv() {}
>
> Supondo agora que eu precise disparar um desses
> métodos devido a um evento qualquer que, dependendo do
> formato desejado, usasse um parâmetro indicando o tipo
> de formato desejado.
>
> Como eu poderia implementar isso sem usar algo
> parecido com o código abaixo?

Sim! Use hashes para isso!

my $dispatch = {
     'xml' => \&to_xml,
     'html' => \&to_html,
};

chomp(my $format = <STDIN>);
$dispatch->{$format}->();

--
Igor Sutton
igor.sutton em gmail.com



-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20070328/3f5dc4d2/attachment.html 
-------------- Próxima Parte ----------
Um anexo não texto foi limpo...
Nome  : PGP.sig
Tipo  : application/pgp-signature
Tam   : 186 bytes
Descr.: This is a digitally signed message part
Url   : http://mail.pm.org/pipermail/cascavel-pm/attachments/20070328/3f5dc4d2/attachment.bin 


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