[Cascavel-pm] O código mais bizonho q ue eu já fiz na minha vida (v. 2 .0)

Flavio S. Glock fglock em pucrs.br
Quarta Junho 16 17:30:33 CDT 2004


Luis Campos de Carvalho wrote:
> 
>    Se em algum momento do programa você alterar a definição de um método
> (ou mesmo criar um novo) em Classe::B, Classe::C (de acordo com o
> terceiro dogma de OOP - herança) automaticamente tem acesso aos novos
> métodos (não existem "cópias locais" de métodos para um determinado
> escopo ou instância). O "perl dispatcher" vai fazer a Coisa Certa.

Luis, você tem razão sobre isso. 

O que eu queria saber é o que você acharia de ter um módulo 
Classe::B::Plugin que altera o funcionamento da Classe::B -
Esta não é uma solução meio "suja" do ponto de vista de OO ?

Por exemplo, como você faria para acrescentar código a 
um método já existente na Classe::B ? Quando você 
redefine um método, a versão anterior é perdida (você tem
que reescrever tudo de novo), e ainda por cima você ganha uns warnings.

Me parece que tanto o programa do Daniel Ruoso, como o
Class::ClassDecorator
tentam resolver este problema de como modificar uma herança que já 
foi estabelecida.

- Flavio S. Glock



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