Fórum Dúvida com Interfaces e Classes #1897

14/01/2009

0

Olá consultores,   gostaria de esclarescer a seguinte dúvida:     Preciso criar uma classe descendente de TPersistent, porém essa classe já tem sua interface.   Ex.:   tenho a interface ICliente   ICliente = interface [xxx-xxx-xxx-xxx-xxx] property ID... property NOME... end   tenho a classe TCliente   TCliente = classe(TInterfacedObject, ICliente) property ID... property NOME... end   porém, eu preciso que TCliente descenda também de TPersistent (devido a serialização), mas tenha sua interface para que eu não precise, entre outras coisas, me preocupar em liberar a memória utilizada pela instância dessa classe ao sair do escopo.   []s Alexandre Amaral.          
Alexandre Neto

Alexandre Neto

Responder

Posts

15/01/2009

Wesley Yamazack

Olá Alexandre,

TInterfacedObject herda diretamente de TObject.
Se quiser ter uma classe que herde de TPersistent e implemente uma interface você deve herdar de TInterfacedPersistent.

Dessa forma, sua classe ficaria assim:

TCliente = classe(TInterfacedPersistent, ICliente)
property ID...
property NOME...
end

Assim você tem uma classe que herda de TPersistent( pois a classe TInterfacedPersistent herda de TPersistent ) e que implementa uma interface.
e ainda com o controle de referencias que o IntefacedObject faz, pois o InterfacedPersistent também faz esse controle.

Att,

Wesley Yamazack
Responder

Gostei + 0

15/01/2009

Alexandre Neto

Valeu Wesley,   mais uma vez obrigado pelo suporte.   []s Alexandre Amaral.
Responder

Gostei + 0

15/01/2009

Wesley Yamazack

Disponha Alexandre ! Se precisar estamos ai.

Continue assim sua estrutura esta muito boa.

 Parabéns

Att,
Wesley Yamazack
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar