First page Back Continue Last page Overview Graphics
Beispiel
Notes:
Ein weiteres Beispiel zeigt Kunden, die Bestellungen platzieren können. Allerdings ist es gemäß diesem Diagramm gewünscht, dass ein Kunde auch ohne Bestellung existieren kann. Umgekehrt kennt jede Bestellung alerdings genau den einen Kunden, der sie platziert hat.
In der Implementierung bedeutet das, dass Verweise auf Objekte der jeweils anderen Art vorhanden sein müssen. Im Falle der Bestellung ist das einfach: es reicht, ein Objekt des Klassentyps „Kunde“ in die Variablen aufzunehen. Umgekehrt ist das nicht ganz so einfach: ein Kunde kann ja mehrere Bestellungen aufgeben. Daher muss dort so etwas wie ein Array benützt werden, um diesen Sachverhalt darstellen zu können.
Dabei kann es natürlich zu Inkonsistenzen kommen: So könnte sich beispielsweise bei den Aufträgen des Kunden A der Auftrag 333 finden. Betrachtet man dann die Variablen des Auftrages 333 findet man dort als Auftraggeber Kunde B. Natürlich gilt es, durch sorgfältige Programmierung und immer wieder auftretende Plausibilitätstests solche Situationen zu verhindern.
Achten Sie in diesem Zusammenhang besonders auf den Unterschied zwischen Identität und Zustandsgleichheit! Der Kunde im Auftrag sollte tatsächlich das Kundenobjekt sein, das den Auftrag ausgelöst hat, nicht ein (wenn auch zustandsgleiches) Kundenobjekt.