CW10 Type Objects

Frage zur Vorlesung Folie 12 <–> 13

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

CW10 Type Objects
Hallo zusammen,
mir ist in den Vorlesungsfolien ein Widerspruch im UML Klassen-Diagramm aufgefallen.
Auf Folie 12 steht zur Frage:

“A KeyboardType class defines a collection references to Keyboard objects.”
Die Antwort;
→ No. It is unusual to make the type object track its instances. If anything, you’ll use a Manager object for this task.

Allerdings ist auf Folie 13 im UML Diagramm ein Attribut +instance in der Klasse FlowerType bedingt durch die Assoziation zu finden, welches eben Instanzen verwaltet.
Meines Erachtens müsste das hier einfach wegfallen und in als Feld im FlowerManager zu finden sein, sehe ich das richtig? Sprich ist das UML Klassendiagramm an dieser Stelle einfach noch nicht aktualisiert worden, oder ist die Entscheidung eine bewusste, das Attribut +instance mit der Multiplizität 0 … * drin zu lassen?

Vielen Dank im Voraus,
Nico Hambauer


Hallo zusammen,

danke fuer die gute Frage. It is complicated.

  1. Man muss UML von Java Klassen unterscheiden. Praktisch versucht man die nahe beieinander zu halten, aber es folgt zB nicht aus einer UML-Assoziation zwischen Flower und FlowerType dass es auf Java Ebene direkt Referenzen von Instanzen der einen Klasse zur anderen geben muss.

Nichtsdestotrotz: Als Pruefungsfrage waere die Frage nicht gut geeignet, weil zu vage. Mal laesst man das Typobjekt in der Java-Implementierung seine Instanzen direkt managen, mal nicht.

  1. Das UML Diagramm ist nicht falsch, aber auch nicht vollstaendig. (Diagramme sind praktisch nie vollstaendig, sie muessen ja auch nicht ausfuehrbar sein.) Ich sage auch nur es sei “ungewoehnlich”, wenn die Typobjekte ihre Instanzen selbst managen. Praeziser waere: Es ist nicht gefordert, und kann auch anders (eben ueber Manager) geloest werden. Das Diagramm auf Slide 13 laesst es einfach offen.

Besten Dank für die ausführliche und schnelle Antwort. Das klärt meine Frage sehr gut!
Grüße,
Nico Hambauer