First page Back Continue Last page Overview Graphics

Abgeleitete Attribute & Assoziationen


Notes:

Auch „abgeleitete“ Attribute & Assoziationen können ein mächtiges Hilfsmittel sein, um bestimmte Zusammenhänge sichtbar zu machen. Als Beispiel diene wieder die Folie: Von einem Zeitintervall werden immer wieder dessen Anfang, dessen Ende sowie dessen Dauer benötigt. Es liegt also nahe, diese drei Elemente als Attribut zur Verfügung zu stellen (damit ist ja nicht gesagt, dass auch alle drei beschreibbar sein sollen).
Natürlich fällt es auf den ersten Blick auf, dass es nicht wirklich schlau sein dürfte, alle drei Attribute auch als Variablen in der Klasse zu speichern: Wir brauchen nur zwei, das dritte lässt sich jeweils auf einfache Art und Weise aus den vorhandenen zwei berechnen, und dann einem Aufrufer mit einer ganz „normalen“ Getter-Methode mitteilen. Für den Aufrufer sieht das abgeleitete Attribut aus wie ein normales Attribut, er kann den Unterschied zu einem „wirklichen“ Attribut nicht ausmachen. Das spiegelt auch sehr schön das Geheimnisprinzip wider, für das wir ja unter anderem die objektorientierte Programmierung überhaupt erfungen haben!
Diese Vorgangsweise kann man durch einen Schrägstrich vor dem Namen des Attributes andeuten. Allerdings gilt es dabei einiges zu beachten: Im Grunde sollte es egal sein, welches der drei Attribute abgeleitet wird. So wie das Diagramm aussieht, dürfte es sich aber um das Attribut „dauer“ handeln. Diese Entscheidung zu treffen sollte allerdings eigentlich der Programmiererin überlassen bleiben, die die Implementierung vornimmt. Die Ableitung kann aber ebenso praktisch und sollte dazu benützt werden, eben solche Zusammenhänge zwischen Attributen darzustellen. Man darf nur nicht der Versuchung erliegen, hier eine jedenfalls abgeleitete „dauer“ zu erblicken!
Ähnlich verhält es sich mit abgeleiteten Assoziationen: Die Problematik, dass eine eigene „Beschäftigung“-Klasse die ursprünglich vorhandene Assoziation zwischen Person und Firma verschleiert, lässt sich ebenso schön und aussagekräftig wie durch die Assoziationsklasse mit einer abgeleiteten Beziehung lösen. Auch hier wird lediglich ein Schrägstrich vor den Namen gestellt. Oft ist es nur eine Platzfrage oder eine des persönlichen Geschmacks, welcher Schreibweise der Vorzug gegeben wird.