[Cascavel-pm] Como dividir uma classe em .pm's mais específicos?

Daniel Ruoso daniel em ruoso.com
Segunda Abril 4 13:53:06 PDT 2005


Em Seg, 2005-04-04 às 17:42, Rod Za escreveu:
> Eu sou meio novo no Perl e acho realmente que minha aplicacao deixa muito a desejar:) Mas o q eu
> pretendia fazer eh mais ou menos o que voce me passou.

Beleza.

> Se eu entendi bem, se eu criar esses packages usando:
> > use base qw(Exporter);
> significa que os packages so "filhos" de Exporter, no eh?

Isso mesmo.

> Desse modo onde eu devo criar a funcao "new" ? em cada um dos packages ou no package principal?

Os packages adicionais não precisam do new... A classe principal depende
de você e de como voce usa.

> ps. eu anexei o cdigo da classe (espero que no se assustem muito:)

Vou dar uma olhada...

[olhando...]

Primeira coisa... você está colocando muita funcionalidade nessa classe.
Crie classes acessórias para:

1) processar o arquivo de configurações (ou melhor, use um módulo da
CPAN que faz isso).
2) gerar log (Sys::Syslog é uma boa opção)
3) Gerenciar as Impressoras
4) Gerenciar os usuários
5) Interpretar arquivos PS
6) Interpretar arquivos HP-PCL

Se você criar módulos (pode ser OO) para cada uma dessas funções, a
única coisa que você vai precisar no módulo principal é o processamento
em si... e se você pensar cada uma dessas atividades isoladamente,
reduzindo o acoplamento, você vai ver que o código como um todo vai
ficar mais simples. Ou seja, implemente os módulos para cada uma das 6
coisas que eu listei como se fosse uma biblioteca independente, e depois
utilize essas bibliotecas no código principal (que vai ser beeeeeeeeem
menor).

daniel



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