Zitat von
mytar:
@maximov: Könntest du dieses Observer-Zeug genauer erklären? ...
Ein observer ist ein software-muster (pattern):
Zitat:
Observer (Beobachter) - Definiere eine 1-zu-n-Abhängigkeit zwischen Objekten, so dass die Änderung des Zustands eines Objekts dazu führt, dass alle abhängigen Objekte benachrichtigt und automatisch aktualisiert werden.
Dazu könnte man ein interface implementieren, welches die nötigen features abstrakt definiert:
Delphi-Quellcode:
type
INotifyable = interface
procedure Notification(const NotifyArg:TNotifyArg);
end;
IObserveable = interface
procedure AddObserver(const aObserver:INotifyable);
procedure RemoveObserver(const aObserver:INotifyable);
end;
Jedes object, das
INotifyable implemntiert kann sich nun bei dem IObserveable-objekt anmelden und wenn es seinen zustand ändert, dann werden alle
Notifications, von allen INotifyable-objekten auf gerufen.
Hätte man hier keine interfaces, so müssten sowohl, die procedure von INotifyable, als auch die von IObserveable, tief in der klassen-hierarchie vergraben sein, damit möglichst viele objekte diese fähigkeit besitzen. Das würde aber zu einer starren klassenabhängigkeit führen, mit der man soweiso immer schon kämpfen muss. Interfaces können also dieses problem auflockern und bieten eine prima möglichkeit 'Quer-Einsteiger-funktionalitäten' umzusetzen
mâxîmôv.
{KDT}