Notificar instância de objeto

Delphi

26/11/2014

Olá pessoal.

Estou com a seguinte situação e me deparei com um problema:

TClasseA = class //Classe base de diversas outras
end;

TClasseB = class(TClasseA)
end;

TClasseC = class(TClasseA)
end;

TClasseX = class
end;

Minha classe X precisa ser notificada toda vez que uma nova instância da classe A, seja ela mesma ou suas classes filhas, for feita. Como posso fazer isso?
Lucas Silva

Lucas Silva

Curtidas 0

Respostas

Claudio Ferreira

Claudio Ferreira

26/11/2014

Há algumas formas de fazer isso, mas a mais bacana é usando o padrão de projeto Observer que provê baixo acoplamento entre as classes. dê uma olhada :

https://www.devmedia.com.br/padrao-observer/2065
GOSTEI 0
Lucas Silva

Lucas Silva

26/11/2014

Pensei no padrão Observer, mas não sei se é possível encaixá-lo na minha situação. Eu vou precisar fazer a notificação no constructor da classe (ou outro lugar que identifique que uma classe foi instanciada), mas dentro dele eu ainda não terei a lista de observadores. Existe a possibilidade de implementá-lo usando métodos estáticos? Se implementá-lo com métodos estáticos, o padrão continua correto?
GOSTEI 0
Claudio Ferreira

Claudio Ferreira

26/11/2014

Nunca tentei. Mas o interessante é resolver o problema sem problemas no que diz respeito ao alto acoplamento, o Padrão observer prima por isso. Se usar com método estáticos e resolver não ficando muito acoplado causando problemas na manutenção, bota pra frente e faz. O padrão estar correto não importa muito, o que importa é resolver dando uma boa implementação considerando o acoplamento. Já cansei de usar alguns padrões mas tive que alterar algumas coisas para que pudesse atender alguma situação, isso é normal.
GOSTEI 0
POSTAR