Einzelnen Beitrag anzeigen

Benutzerbild von maximov
maximov

Registriert seit: 2. Okt 2003
Ort: Hamburg
548 Beiträge
 
Delphi 2005 Professional
 
#16

Re: [Interfaces]: Anwendungsbeispiel

  Alt 13. Dez 2004, 16:17
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}
  Mit Zitat antworten Zitat