Padrão Observer
Estou tentando fazer o exemplo Padrão Observer da revista Clube Delphi edição 119 e está reclamando quando coloco a uses Generics.Collections.
Eu acredito que isso acontece pois meu Delphi é o 7 daí queria saber se tem como resolver?
Eu acredito que isso acontece pois meu Delphi é o 7 daí queria saber se tem como resolver?
Paulo Andrade
Curtidas 0
Respostas
Marco Salles
21/01/2012
Então amigo , eu não estou com a revista aqui , mas o Padrão Observer não esta relacionado com a
linguagem especifica , muito menos com a utilização do Generecis. O Fato que o autor deve ter definido
classes que necessitam da units generics.collections
Voce pode trocar a classe por uma outra extensivel ao Delphi7 , ou mesmo ir para um caminho mais dificil
que é Simular o Generecis no Delphi7 . Este último caminho é mais difícil porém é possível
Na realidade o conceito de genericcs existe em Versões anteriores oproblema é que a sua implementação é
bem mais complexa . O que as novas Versões do Delphi feziram foi um wrappers para se tornar a utilização
deste tipo de implementação mais agradável
linguagem especifica , muito menos com a utilização do Generecis. O Fato que o autor deve ter definido
classes que necessitam da units generics.collections
Voce pode trocar a classe por uma outra extensivel ao Delphi7 , ou mesmo ir para um caminho mais dificil
que é Simular o Generecis no Delphi7 . Este último caminho é mais difícil porém é possível
Na realidade o conceito de genericcs existe em Versões anteriores oproblema é que a sua implementação é
bem mais complexa . O que as novas Versões do Delphi feziram foi um wrappers para se tornar a utilização
deste tipo de implementação mais agradável
GOSTEI 0
Paulo Andrade
21/01/2012
Então amigo , eu não estou com a revista aqui , mas o Padrão Observer não esta relacionado com a
linguagem especifica , muito menos com a utilização do Generecis. O Fato que o autor deve ter definido
classes que necessitam da units generics.collections
Voce pode trocar a classe por uma outra extensivel ao Delphi7 , ou mesmo ir para um caminho mais dificil
que é Simular o Generecis no Delphi7 . Este último caminho é mais difícil porém é possível
Na realidade o conceito de genericcs existe em Versões anteriores oproblema é que a sua implementação é
bem mais complexa . O que as novas Versões do Delphi feziram foi um wrappers para se tornar a utilização
deste tipo de implementação mais agradável
linguagem especifica , muito menos com a utilização do Generecis. O Fato que o autor deve ter definido
classes que necessitam da units generics.collections
Voce pode trocar a classe por uma outra extensivel ao Delphi7 , ou mesmo ir para um caminho mais dificil
que é Simular o Generecis no Delphi7 . Este último caminho é mais difícil porém é possível
Na realidade o conceito de genericcs existe em Versões anteriores oproblema é que a sua implementação é
bem mais complexa . O que as novas Versões do Delphi feziram foi um wrappers para se tornar a utilização
deste tipo de implementação mais agradável
Segui abaixo o código. O que posso alterar? O que posso usar para resolver?
unit uTerminal;
interface
uses Generics.Collections, uObserver;
type
TTerminal = class(TInterfacedObject, IObservavel)
private
Observadores: TList<IObservador>
TerminalIniciado: Boolean;
public
procedure IniciarTerminal;
procedure FinalizarTerminal;
procedure RegistrarObservador(Observador: IObservador);
procedure RemoverObservador(Observador: IObservador);
procedure NotificarObservadores;
procedure Create;
end;
implementation
{ TTerminal }
procedure TTerminal.RegistrarObservador(Observador: IObservador);
begin
end;
procedure TTerminal.Create;
begin
end;
procedure TTerminal.FinalizarTerminal;
begin
end;
procedure TTerminal.IniciarTerminal;
begin
end;
procedure TTerminal.NotificarObservadores;
begin
end;
procedure TTerminal.RemoverObservador(Observador: IObservador);
begin
end;
end.
GOSTEI 0
Marco Salles
21/01/2012
Eu acho olhando rapidamente a definição , voce pode continuar com Tlist a unica digferença~que voce vai ter que
fazer conversão explicita na hora de adicionar os Objetos .Pois TLIst<IObserver> claramente as operaçoes
de adição , remoção , consulta sçao especificxas a Objetos do que implementam a Interface IObserver
Ja a classe TList padrão do Delphi voce adiciona Ponteiros que deverão sofre Type Cast para representar
a classe de seu Objetos
Por exemplo
Var
Obj:Tlist
begin
Obj.Add(UmObjeto);
...
TClasseDoObjeto(Obj[i]).PropriedadeDaClasseDoObjeto;
fazer conversão explicita na hora de adicionar os Objetos .Pois TLIst<IObserver> claramente as operaçoes
de adição , remoção , consulta sçao especificxas a Objetos do que implementam a Interface IObserver
Ja a classe TList padrão do Delphi voce adiciona Ponteiros que deverão sofre Type Cast para representar
a classe de seu Objetos
Por exemplo
Var
Obj:Tlist
begin
Obj.Add(UmObjeto);
...
TClasseDoObjeto(Obj[i]).PropriedadeDaClasseDoObjeto;
GOSTEI 0