[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