ich habe eine Frage zum Thema Interface...
ich habe folgende Methode (die bis jetzt nichts macht):
Delphi-Quelltext
1: 2: 3:
| procedure TSubject.RegisterObserver(Observer: IObserver); begin end; |
so rufe ich diese Methode auf:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| TObserver =class(TInterfacedObject, IObserver) ... end;
procedure TObserver.machwas(); var FSubject: TSubject; begin ... FSubject.RegisterObserver(self); ... |
Nachdem ich die Methode RegisterObserver(self) aufgerufen habe, kann ich auf das Objekt(also auf das sich self bezieht) nicht mehr zugreifen.
Wenn ich dagegen die Methode so implmentier funktionierts:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TObserver.machwas(); var FSubject: TSubject; o: IObserver; begin ... o := self; FSubject.RegisterObserver(o); ... |
IObserver ist ein Interface.
Was ändert sich durch die Zuweisung?
Bitte um Hilfe, Danke!!!!!!