Fixed Property
# Fixed Property

Fixed Property ist ein Analysemuster nach Martin Fowler. Es beschreibt die gängigste Art wie Eigenschaften eines Objektes modelliert werden.

Jedes Objekt besitzt Objekt-Eigenschaften, welche Informationen über das Objekt enthalten und es dadurch klassifizieren. Es gibt viele Wege um diese Eigenschaften zu modellieren. Am häufigsten findet man die Verwendung von festen Attributen. Bei dieser Art der Implementierung werden die Attribute in der Klasse (objektorientierte Programmierung) deklariert und durch ihren Namen und den Rückgabetyp definiert.

## Verwendung

Initialisiert werden diese Eigenschaften über den Konstruktor der Klasse. Zur Laufzeit stehen Operationen (Methoden) zur Verfügung, um entweder Informationen des Objekt erfragen oder ändern zu können. Diese Methoden werden oft als Get- und Set-Methoden bezeichnet.

Das Beispiel im Bild rechts ist ein UML-Modell des Typ Person. Der Quelltext oben zeigt einen Teil der Java-Implementierung dieses Objektes. In Person sind folgende Attribute modelliert: Geburtsdatum vom Typ Date, das Alter vom Typ Integer und die Körpergröße vom Typ Quantity.

Quantity ist ebenfalls ein Analysemuster von Martin Fowler. Man verwendet dies, wenn es um Messbare Werte mit „Betrag“ und „Einheit“ geht.

Ein weiteres Attribut von Person ist employer. Dies wurde über die Assoziation zum Objekt Company modelliert. Die Implementierung zeigt Methoden zum Ändern und Abrufen der Informationen. Hierbei kann es sich um gespeicherte oder berechnete Werte handeln. In diesem Beispiel

* public Date getDateOfBirth; = gespeicherter Wert
* public int getAge; = berechneter Wert

Es werden nur set-Methoden für Attribute angeboten, bei denen es gewünscht oder erforderlich ist. Beispielsweise fehlt im Quelltextbeispiel oben eine Operation, um das Alter zu ändern. Dies ist auch nicht notwendig, da es bequem über das Geburtsdatum berechnet werden kann und dadurch reduziert sich die Anfälligkeit durch Fehleingaben.

## Vor- und Nachteile

Vorteil: Fixed Properties sind einfach zu implementieren, und es gibt definierte Schnittstellen, mit denen man auf die Attribute zugreifen kann.

Nachteil: Fixed Properties können nur in der Designphase definiert werden.

## Sonstiges

In den meisten Anwendungsfällen mit wenig zu verwaltenden Attributen sind fixed Properties völlig ausreichend. Steigt die Anzahl der Attribute stark an oder ändern sich diese oft (auch während der Laufzeit), so werden fixed Properties zunehmend unflexibel. In diesen besonderen Anwendungsfällen bieten sich Muster wie Dynamic Property oder Flexible Dynamic Property von Martin Fowler an.

