04.10.2013 Aufrufe

als PDF, 4 Folien/Seite - AG-Kastens

als PDF, 4 Folien/Seite - AG-Kastens

als PDF, 4 Folien/Seite - AG-Kastens

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

© 2005 bei Prof. Dr. Uwe <strong>Kastens</strong><br />

Eingebettete Objekte <strong>als</strong> Agenten<br />

Schema:<br />

Ein Agent handelt für ein Institut;<br />

er ist untrennbar an sein Institut gebunden;<br />

Kunden sehen nur den Agenten - nicht das Institut<br />

Institut - Agent - Kunde<br />

Beispiel: Versicherung - Vertreter - Kunde<br />

Technik: eingebettete Klassen<br />

interface Vertreter<br />

{ void abschließen(); void melden();}<br />

class Versicherung<br />

{ void regulieren() {...}<br />

}<br />

class Agent implements Vertreter<br />

{ void abschließen () { ... }<br />

void melden ()<br />

{... regulieren() ... }<br />

}<br />

Schachtelung der Klassen: enge Einbettung der Objekte<br />

Innere Objekte erfüllen global sichtbare Schnittstelle,<br />

sind <strong>als</strong>o außerhalb ihrer Umgebung verwendbar.<br />

WWK<br />

Objektbild:<br />

WAgent1<br />

WAgent2<br />

Vertreter<br />

Allianz<br />

OOP-2.27<br />

Kunde<br />

Vertreter v;<br />

v.melden();<br />

AAgent1<br />

AAgent2<br />

Beispiel: Listener der Ereignisbehandlung<br />

An AWT-Komponenten werden<br />

Ereignisse ausgelöst, z. B.<br />

ein WindowEvent an einem<br />

Frame-Objekt:<br />

Window<br />

Frame-Objekt<br />

Ereignis auslösen:<br />

zugehörige Methode in jedem<br />

Beobachter-Objekt aufrufen<br />

Beobachterobjekte<br />

dynamisch<br />

zuordnen<br />

„eingebettete Agenten“<br />

WindowListener<br />

OOP-2.28<br />

Beobachter für bestimmte<br />

Ereignistypen:<br />

Objekte von Klassen, die<br />

das zugehörige Interface<br />

implementieren<br />

Anwendung<br />

...<br />

void windowClosing(...) {...}<br />

...<br />

...<br />

void windowClosing(...) {...}<br />

...<br />

Methoden implementieren die<br />

gewünschten Reaktionen<br />

Entwurfsmuster „Observer“: Unabhängigkeit zwischen den Beobachtern und dem Gegenstand<br />

wegen Interface und dynamischem Zufügen von Beobachtern.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!