UML: Unterschied zwischen den Versionen
Aus Das Sopra Wiki
| Zeile 147: | Zeile 147: | ||
} | } | ||
</graphviz> | </graphviz> | ||
===== Navigierbarkeit ===== | |||
Navigierbarkeit ist ein wichtiges Konzept der Objektorientierten Programmierung, hierbei geht es um die Frage, welche Klassen von einer anderen Klasse aus erreichbar sind. D.h. dass eine Klasse A von der aus zu einer Klasse B navigiert werden können soll entsprechende Vorkehrungen treffen muss um dies möglich zu machen. Ein einfacher Weg besteht darin eine entsprechende Referenz auf die Klasse B in der Klasse A abzulegen. | |||
UML erlaubt wiederum eine grafische Repräsentation dieses Konzepts. Die jeweiligen Enden einer Assoziation können mit Symbolen versehen werden, die Aussagen über die Navigierbarkeit der Klassen machen: | |||
<graphviz> | |||
digraph Navigation { | |||
edge [ | |||
fontname = "Bitstream Vera Sans" | |||
fontsize = 12 | |||
] | |||
node [ | |||
fontname = "Bitstream Vera Sans" | |||
fontsize = 8 | |||
shape = "record" | |||
] | |||
Auto_N [ | |||
label = "{Auto||\l}" | |||
] | |||
Fahrer_N [ | |||
label = "{Fahrer||\l}" | |||
] | |||
Auto_N -> Fahrer_N [ | |||
arrowhead = "none" | |||
arrowtail = "none" | |||
] | |||
Auto_A [ | |||
label = "{Auto||\l}" | |||
] | |||
Fahrer_A [ | |||
label = "{Fahrer||\l}" | |||
] | |||
Auto_A -> Fahrer_A [ | |||
arrowhead = "vee" | |||
arrowtail = "none" | |||
] | |||
Auto [ | |||
label = "{Auto||\l}" | |||
] | |||
Fahrer [ | |||
label = "{Fahrer||\l}" | |||
] | |||
Auto -> Fahrer [ | |||
arrowhead = "none" | |||
arrowtail = "none" | |||
headlabel = "X " | |||
] | |||
} | |||
</graphviz> | |||
Von Links nach Rechts haben wir im obigen Beispiel folgende drei Fälle: | |||
# Keine Aussage über die Navigierbarkeit | |||
# Navigieren vom Auto zum Fahrer möglich | |||
# Navigieren vom Auto zum Fahrer nicht möglich | |||
== Links == | == Links == | ||
