Als Beispiel wird die Situation betrachtet in der Kollegen, die sich an
unterschiedlichen Orten aufhalten, gemeinsam (z.B. über ihre Arbeit) diskutieren
müssen. Die Kommunikation ist normalerweise bidirektional, d.h. je ein Sender
und Empfänger. Das ist z.B. beim Telefon der Fall oder bei dem UNIX-Programm
talk.
Das Beispiel ist möglichst einfach gehalten. Natürlich könnten
sich jetzt alle Kollegen vor ihren Computer setzen und immer Rundmails
schreiben. Besser jedoch ist es, wenn sich alle bei einem Vermittler anmelden
und ihre Nachrichten an eine Stelle schicken. Der Vermittler verwaltet alle
Kollegen und leitet die Nachrichten an alle weiter. Dieses Gebilde wir auch als
'Chat' bezeichnet.
Hier ist nur die Basisfunktionalität implementiert.
Jeder Kollege meldet sich bei dem Vermittler an (im allgemeinen Fall kann es
auch mehrere Vermittler geben). Ist der Kollege angemeldet kann er Nachrichten
senden. Die Nachrichten werden vom Vermittler an jeden angemeldeten Kollegen
weitergeleitet.
Das Beispiel besteht aus den folgenden Klassen, die sich
in den gleichnamigen Dateien befinden:
- Vermittler.e implementiert das Gesamtverhalten durch Koordination der Kollegen-Objekte. Kennt
und verwaltet seine Kollegenobjekte.
- Kollege.e definiert die Kollegen-Schnittstelle.
- Kollege1.e,
Kollege2.e
und Kollege3.e sind die konkreten Kollegen. Jeder Kollege kommuniziert mit seinem Vermittler
und so indirekt mit den anderen Kollegen.
- AnwendungsFenster.e sorgt für die grafische Darstellung.
- Anwendung.e ist die Mainfunktion, welche das AnwendungsFenster aufruft.
|
Abb. 3: Die Struktur des Beispiels
|
|