Fachkonzept - Interaktion zwischen Objekten
Wie interagieren Objekte?
Zur Beschreibung der Arbeitsweise von Objekten werden oft Sprechweisen benutzt, die diesen Vorgang in Analogie zur Lebenswelt setzen.
Eine Pizzeria bietet Pizza ausliefern
als Dienst an. Durch eine Nachricht an die Pizzeria kann man diesen
Dienst in Anspruch nehmen, d.h. die Pizzeria auffordern, ihren Dienst auszuführen.
Ein Kunde muss die Pizzeria kennen, um eine Bestellnachricht an sie senden zu können
und mit ihr in der gewünschten Weise interagieren zu können.
Die im Kontext Pizzeria
benutzten Begriffe werden jetzt auf die Welt der Software-Objekte übertragen.
Objekte können (in aller Regel) bestimmte Operationen mit den von ihnen verwalteten Daten ausführen. Die Ausführung einer Operation wird als Dienst anderen Objekten zur Verfügung gestellt. Andere Objekte können den zur Verfügung gestellten Dienst dann nutzen. Hier wird also die Anbieter-Nutzer-Sichtweise benutzt.
Wenn ein Objekt den Dienst eines anderen Objekt nutzen will, dann schickt es ihm eine Nachricht. Das Senden einer Nachricht bedeutet, ein Objekt zu veranlassen, eine seiner als Dienste zur Verfügung gestellten Operationen auszuführen.
Das Versenden von Nachrichten wird als Interaktion zwischen Objekten gedeutet. Voraussetzung für eine Interaktion zwischen Objekten ist, dass diese miteinander in Beziehung stehen.
Beispiel: elf-hoch
Die oben beschriebene Sichtweise soll im Kontext Elf-hoch
verdeutlicht werden.
Ein Spieler
-Objekt bietet den Dienst spielen()
an.
Wenn es durch eine Nachricht (von einem Spielmanager
-Objekt) aufgefordert wird,
diesen Dienst auszuführen, dann schickt es seinerseits Nachrichten an Objekte, um diese zur Mitarbeit
aufzufordern. Zuächst schickt das Spieler
-Objekt Nachrichten
an die beiden Wuerfel
-Objekte, um deren Dienst werfen()
zu nutzen. Anschließend schickt das Spieler
-Objekt noch einmal Nachrichten
an die beiden Wuerfel
-Objekte, um sich die Würfelergebnisse zu besorgen.
Wenn die Summe der Würfelergebnisse 12 beträgt, schickt das Spieler
-Objekt
schließlich eine Nachricht an das Kasse
-Objekte, um dessen Dienst einzahlen(...)
in Anspruch zu nehmen.
Ähnlich agiert das Spieler
-Objekt, wenn eine andere Summe der Würfelergebnisse vorliegt.
Das Spieler
-Objekt interagiert also hier mit den Wuerfel
-Objekten
und dem Kasse
-Objekt.
Dies alles ist deshalb möglich, weil das Spieler
-Objekt
in Beziehung zu den betreffenden Objekten steht und diese die passenden
Dienste anbieten.
Zur Darstellung solcher Interaktionsprozesse benutzt man häufig sogenannte Sequenzdiagramme (siehe oben).