[Cascavel-pm] Sugestão OO
Donato Azevedo
donatoaz em gmail.com
Quarta Julho 1 19:04:41 PDT 2009
2009/7/1 Nilson Santos Figueiredo Jr. <acid06 em gmail.com>:
> 2009/7/1 Eden Cardim <edencardim em gmail.com>:
>> Eu iria mais longe, passe uma closure que recebe os dados "raw" e
>> retorna parseado no formato adequado.
>
> Ou mais longe ainda, uma closure que recebe dados "raw" *ou* um objeto
> que respeita uma determinada interface.
Acho que vou fazer isso. O cara declara a classe dele como ele quiser
e define uma interface padrão. Dai ele pode passar esse objeto para o
construtor do meu parser (caso o contrario retorno os dados raw
mesmo).
Mais uma duvida: seria muita gambiarra se essa interface padrao
retornasse objetos do mesmo tipo dela, de modo que o usuario pudesse
fazer algo do tipo:
package Minha;
use base qw/Class::Accessor/;
Minha->mk_accessors( qw/ foo bar / );
sub parse {
my $self = shift;
return undef unless ref $self;
my $raw = shift;
# do the parsing
...
my $new = Minha->new( { foo=>$parsed[0], bar=>$parsed[1] } );
$new;
}
ou fica esquisito? Eu nao sei ate onde é frescura querer manter isso
como OO, ou se eu deveria simplesmente pedir pro usuario passar uma
sub ref que retorna uma hash simples.....
--
Donato Azevedo
reencontrando a alegria de programar em Perl...
Mais detalhes sobre a lista de discussão Cascavel-pm