Vermittler [ Übersicht ] [ Beispiel ] [ Quellen ] [ Home Entwurfsmuster ]


Beschreibung

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




Beispiel

Das kompilierte Beispielprogramm. Hier eine kurze Beschreibung:

1. Dieses Fenster erscheint nach dem Start des Programms. Es enthält den Vermittler, der als (noch leeres) weisses Kästchen dargestellt ist. Die drei Kollegen sind im unteren Teil dargestellt.

 Abb. 4: Screenshot des Beispiels



2. Jetzt hat sich Kollege 1 mit dem drücken des Anmelden-Knopfs angemeldet. Im Vermittler-Fenster leuchtet rot die Information "1 angemeldet" auf. Dann schreibt er die Nachricht "Hallo Leute" und drückt den Knopf Senden. Die Nachricht erscheint nur im Ausgabefenster von Kollege 1, da die anderen Kollegen noch nicht angemeldet sind.

 Abb. 5: Screenshot des Beispiels



3. Nun melden sich Kollege 2 und Kollege 3 nacheinander an. Sie werden mit rot und grün im Vermittler-Fenster angezeigt. Auch wird eine Benachrichtigung ("2 / 3 neu im chat") an alle zu diesem Zeitpunkt angemeldeten Kollegen gesendet. Dann sendet Kollege 1 die Nachricht "Jemand hier?", die jetzt auch Kollege 2 und 3 erhalten. Kollege 2 antwortet "hallo 1, wie geht's?", u.s.w.

 Abb. 6: Screenshot des Beispiels



Nun kann jeder mit jedem kommunizieren. Aber es hört auch jeder dem anderen zu. Ein Erweiterung könnte sein, dass Kollegen 'geheime' Botschaften an spezielle Kollegen senden. Auch die Möglichkeit sich bei mehreren Vermittlern anzumelden ist denkbar.


[ Übersicht ] [ Beispiel ] [ Quellen ] [ Home Entwurfsmuster ]
Stand: 31.03.2005, Autor: Laszlo Hetey