Delphi-Quellcode:
TObserverSubject = class
protected
ObserverCollection: TInterfaceList;
public
constructor Create;
destructor Destroy; override;
procedure RegisterObserver(Observer: INotifyObserver);
procedure UnregisterObserver(Observer: INotifyObserver);
procedure NotifyObservers();
end;
Vorschläge:
* statt TInterfaceList
IInterfaceList verwenden (spart ein FreeAndNil im Destruktor)
* in den Parametern const verwenden: statt (Observer: INotifyObserver) (
const Observer: INotifyObserver), so kann eine unnötige Referenzzählung verhindert werden
* Generics verwenden um die Observerliste typsicher zu machen (spart das Supports(...))