Referência circular
Olá pessoal, tô com um perrengue sinistro!
É o seguinte: tenho uma classe de negócios TPeca, que possui métodos de persistência como Salvar, Consultar, Excluir etc. Esses métodos usam uma classe utilitária responsável pelos detalhes de persistência, TRepositorioPeca.
O problema é que TPeca possui um TRepositorioPeca, mas TRepositorioPeca também referencia TPeca em seus métodos. Tipo assim, TPeca.Salvar chamaria TRepositorioPeca.Salvar(Self), onde Self é to tipo TPeca.
O problema é que colocando TPeca e TRepositorioPeca em units separadas dá erro fatal de referência circular, e na mesma unit ocorre o seguinte na declaração das classes:
TPeca referencia TRepositorioPeca, que só está definida abaixo e o Delphi diz que não conhece TRepositorioPeca. E se inverto a ordem também acontece! TRepositorioPeca referencia TPeca que está definida abaixo e é desconhecida...
Acho que não teria problema fazer isso com Java... Alguém tem uma solução? :D
[quote:7ea07b62d8=´Moderação´]Título editado por Massuda.
Removido do título: ´perrengue sinistro!´[/quote:7ea07b62d8]
É o seguinte: tenho uma classe de negócios TPeca, que possui métodos de persistência como Salvar, Consultar, Excluir etc. Esses métodos usam uma classe utilitária responsável pelos detalhes de persistência, TRepositorioPeca.
O problema é que TPeca possui um TRepositorioPeca, mas TRepositorioPeca também referencia TPeca em seus métodos. Tipo assim, TPeca.Salvar chamaria TRepositorioPeca.Salvar(Self), onde Self é to tipo TPeca.
O problema é que colocando TPeca e TRepositorioPeca em units separadas dá erro fatal de referência circular, e na mesma unit ocorre o seguinte na declaração das classes:
TPeca referencia TRepositorioPeca, que só está definida abaixo e o Delphi diz que não conhece TRepositorioPeca. E se inverto a ordem também acontece! TRepositorioPeca referencia TPeca que está definida abaixo e é desconhecida...
Acho que não teria problema fazer isso com Java... Alguém tem uma solução? :D
[quote:7ea07b62d8=´Moderação´]Título editado por Massuda.
Removido do título: ´perrengue sinistro!´[/quote:7ea07b62d8]
Renatosilva
Curtidas 0
Respostas
Massuda
10/10/2005
O problema é que colocando TPeca e TRepositorioPeca em units separadas dá erro fatal de referência circular,
Isso não funciona.e na mesma unit ocorre o seguinte na declaração das classes:
TPeca referencia TRepositorioPeca, que só está definida abaixo e o Delphi diz que não conhece TRepositorioPeca. E se inverto a ordem também acontece! TRepositorioPeca referencia TPeca que está definida abaixo e é desconhecida...
Para não dar erro, faça algo assim...type TRepositorioPeca = class; TPeca = class... // definição de TPeca end; TRepositorioPeca = class... // definiçào de TRepositorioPeca end;
GOSTEI 0
Renatosilva
10/10/2005
Caraca massuda!!! Muito boa!! Valeuzão cara, funcionou!
Agora eu entendo o porquê de várias classes da VCL estarem com essa declaração simplória... muito legal... valeu!!! :D :D
Agora eu entendo o porquê de várias classes da VCL estarem com essa declaração simplória... muito legal... valeu!!! :D :D
GOSTEI 0