next up previous contents index
Nächste Seite: 7.5.3 Elemente Aufwärts: 7.5 Repräsentation von Constraint-Ausdrücken Vorherige Seite: 7.5.1 Constraints   Inhalt   Index

7.5.2 Wertebereiche

Die Wertebereiche von Constraint-Variablen werden durch die Klasse Domain repräsentiert. Die Klasse ist nicht abstrakt, d.h. vollständig implementiert, und kann für beliebige Wertebereiche genutzt werden, da eine entsprechende Kapselung der enthaltenen Elemente vorgesehen wurde (siehe Abbildung 7.4).

Abbildung 7.4: Wertebereiche von Constraint-Variablen
\begin{figure}\centering
\includegraphics[scale=0.7]{images/implementierung_domain}\ifx\pdfoutput\undefined
\fi
\end{figure}

Aus Gründen der Vereinfachung beim Instantiieren bzw. beim Zugriff auf diese Klasse wurden Unterklassen von Domain erzeugt, die einen erleichterten Zugriff mit den jeweils entsprechenden Elementen der Domäne erlauben (numerische/symbolische finite Domänen, infinite Intervalldomänen). Sollen weitere Domänen unterstützt werden, ist das YACS-Framework an dieser Stelle durch weitere Unterklassen erweiterbar.

Instanzen der Klasse Domain bzw. deren Unterklassen müssen sich wie Instanzen der Klasse Expression vollständig duplizieren lassen, da sie Teil einer Variable sind (vgl. Abschnitt 7.5.1). Die Klasse Domain verfügt daher ebenfalls über eine cloneDeep()-Methode.

Belegt werden die Wertebereiche mit Instanzen von Spezialisierungen der abstrakten Oberklasse DomainElement, mit denen sich Elemente aus unterschiedlichen Domänen kapseln lassen.


next up previous contents index
Nächste Seite: 7.5.3 Elemente Aufwärts: 7.5 Repräsentation von Constraint-Ausdrücken Vorherige Seite: 7.5.1 Constraints   Inhalt   Index