Java Reference
In-Depth Information
Java definiert im Zusammenhang mit Iteratoren noch ein weiteres Interface: das
Interface Iterable<E> in der Bibliothek java.lang . Dieses Interface entspricht in
seiner Rolle in etwa dem Interface IDatenstruktur . Klassen, die das Interface
Iterable<E> implementieren, müssen eine Methode iterator() zur Verfügung
stellen, die als Ergebnis einen Iterator vom Typ Iterator<E> liefert. Der Clou an
dem Interface Iterable ist, dass über Datenstrukturen, die dieses Interface imple-
mentieren, mit einer sogenannten foreach -Schleife iteriert werden kann.
Wird also im Programmbeispiel die Klasse MitarbeiterArray mit dem Zusatz
implements Iterable<Mitarbeiter> versehen und die Methode erzeuge-
Iterator() umbenannt in iterator() , dann könnte die main() -Methode der
Klasse Testclient alternativ auch wie folgt formuliert werden:
public static void main (String[] args)
{
for (Mitarbeiter elem : maListe)
elem.print();
}
Hier ist nun die Nutzung eines Iterators komplett aus dem Quelltext verschwunden.
Sollen aber zusätzliche Funktionen des Iterators benutzt werden, wie etwa Elemente
einfügen oder entfernen, dann ist die explizite Schreibweise zur Nutzung eines
Iterators weiterhin erforderlich.
4.17.6
Ähnliche Entwurfsmuster
Ein Iterator und ein Besucher des Besucher-Musters sind sich insofern ähnlich, als
dass sie sich über die Elemente einer Datenstruktur hinweg bewegen. Die Aufgabe
eines Iterators beschränkt sich auf einen solchen Durchlauf der Datenstruktur,
während ein Besucher zusätzlich während des Durchlaufs eine zusätzliche Funktiona-
lität erbringt. Wie bereits erwähnt wurde, kann ein Besucher einen Iterator nutzen, um
die Datenstruktur zu durchlaufen. Weiterhin setzt das Iterator-Muster voraus, dass die
Objekte der Datenstruktur eine gemeinsame Basisklasse haben. Das Besucher-Muster
verlangt hingegen nur, dass die Objekte der Datenstruktur eine passende akzep-
tieren() -Methode besitzen. Beim Besucher-Muster liegt außerdem der Fokus da-
rauf, dass weitere Besucher mit anderer Funktionalität flexibel zu einer Datenstruktur
hinzugefügt werden können.
Search WWH ::




Custom Search