2016-07-25 13 views
1

Könnte mir bitte jemand mit dieser einfachen Frage helfen? Ich bin neu in UML und studiere Iterator Design Pattern.UML Pfeil Erklärung

enter image description here

Was von ConcreteIterator zu ConcreteAggregate der feste Pfeil tut steht?

Dank

+4

A) Überprüfen Sie hier http://StackOverflow.com/Questions/1874049/Explanation-of-the-uml-arrows ... nun, das schwarze feste Pfeil ist nicht auf dem B) versuchte Ihre Lieblings-Suchmaschine? ! (Vorangegangene Forschung genannt) C) nicht übertakten ... die Frage nach UML-Diagrammen hat ** nichts ** mit all den Tags zu tun, die Sie auf diese Frage setzen! – GhostCat

+1

der Pfeil ist Assoziation (Nummer 5 in der Antwort oben verlinkt), nur der Autor des Diagramms in Ihrem Bild verwendet Nicht-Standard-Stil für den Pfeil Ende –

+1

Werfen Sie einen Blick auf das richtige Klassendiagramm für Iterator Design-Muster. http://www.blackwasp.co.uk/iterator.aspx Denken Sie daran, dass in UML fast alles ist wichtig in den Pfeil - der Typ der Linie, wenn der Pfeil offen oder geschlossen ist, wenn es leer oder gefüllt ist, wenn dort ist zusätzliche Stereotyp oder andere Markierungen auf der Linie (kleines Dreieck), über Linie (auch kleines Dreieck) und Pfeilende (kann bis zu 3 verschiedene Elemente dort sein). Ich würde sagen, nur Krümmungen (Anzahl oder Position) haben keinen Einfluss auf die Bedeutung eines Pfeils. – Ister

Antwort

2

Die beiden Pfeile zwischen ConcreteAggregate und ConcreateIteraor sind in einem Klassendiagramm nicht gültig. Der schwarze durchgezogene Pfeil von ConcreateIteraor und ConcreteAggregate ist die Notation für eine Erweiterung zwischen einem Stereotyp und einer Metaklasse. Dies ist zwischen Klassen nicht gültig und es ist nicht das, was dieses Diagramm zu beschreiben beabsichtigt.

Die korrekte Schreibweise für dieses Diagramm ist:

enter image description here

mit einer Abhängigkeit von ConcreteAggregate-ConcreateIteraor und eine unidirektionale Assoziation von ConcreateIteraor und ConcreteAggregate.

Um keine gültigen Diagramme zu erstellen, sollten Sie ein echtes UML-Modellierungswerkzeug verwenden (im Gegensatz zum Zeichenwerkzeug). Dieser wurde mit GenMyModel hergestellt.

+1

Sie haben Recht. Ein paar Kommentare though: - Das ursprüngliche Diagramm zeigte die Klassen Aggregate und Iterator in kursiv, was bedeutet, dass sie abstrakt sind. Es wäre gut, dies auch in Ihrem Diagramm zu zeigen. - Der Stereotyp <> ist redundant, da jeder gestrichelte Pfeil eine Abhängigkeit darstellt. - Sie zeigen die Multiplizität "1" auf der linken Seite der Assoziation. Warum nicht Multiplizität "*" auf der anderen Seite zeigen? - Um anzuzeigen, dass "Aggregat" ein Eigenschaftsname und nicht der Assoziationsname ist, wäre es gut, das Wort auf der linken Seite der Assoziation, näher an der Pfeilspitze, zu platzieren. –

+0

Ein letzter Kommentar: Das Zahnradsymbol ist kein Standard-UML. Ich würde es vorziehen, nur ein "+" Zeichen zu zeigen. –

+0

Vielen Dank @ www.admiraalit.nl Ich habe die abstrakte Natur korrigiert und den <> Stereotyp versteckt. – Xaelis