| Iterator | [ Übersicht ] [ Beispiel ] [ Quellen ] [ Home Entwurfsmuster ] |
Übersicht | ||
Das Iterator - Pattern
ermöglicht einen sequenziellen Zugriff auf die Elemente eines zusammengesetzten
Objektes, ohne dessen Datenstruktur offenzulegen.
Es nimmt die verschiedenen Arten der
Traversierung aus der Klasse heraus, wodurch die Schnittstelle des
zusammengesetzten Objektes nicht durch Methoden für die verschiedenen
Traversierungsarten aufgebläht wird. Dies sollte selbst dann geschehen, wenn
bekannt ist, welche Methoden benötigt werden. Des Weiteren sind die
Traversierungsalgorithmen leichter austauschbar, da man einfach das
entsprechende Iteratorobjekt auszutauschen braucht. Traversierungsarten bei
einer Liste beispielsweise sind vorwärts und rückwärts, oder auch bei einem Baum
das Depth-First oder Top-First Traversieren. Das Iterator-Pattern ermöglicht
zudem eine mehrfach Traversierung zur gleichen Zeit.
Teilnehmer
Bei einem Iterator-Patten ist es notwendig, dass:
Wenn ein Iterator so ausgelegt ist, dass er verschieden Datenstrukturen verarbeiten kann, dann sprechen wir von einem polymorphen Iterator. |
[ Übersicht ] [ Beispiel ] [ Quellen ] [ Home Entwurfsmuster ] |