Design patterns
Wzór iteratora
Szukaj…
Wzór iteratora
Kolekcje są jedną z najczęściej używanych struktur danych w inżynierii oprogramowania. Kolekcja to tylko grupa obiektów. Kolekcja może być listą, tablicą, mapą, drzewem lub czymkolwiek. Kolekcja powinna więc zapewniać dostęp do swoich elementów bez ujawniania wewnętrznej struktury. Powinniśmy być w stanie przejść przez to samo, niezależnie od rodzaju kolekcji.
Ideą wzoru iteratora jest wzięcie odpowiedzialności za dostęp do obiektu kolekcji i umieszczenie go w obiekcie iteratora. W zamian obiekt iteratora zachowa kolejność iteracji, śledzi bieżący element i musi mieć sposób na pobranie następnego elementu.
Zwykle klasa kolekcji zawiera dwa składniki: samą klasę i Iterator
.
public interface Iterator {
public boolean hasNext();
public Object next();
}
public class FruitsList {
public String fruits[] = {"Banana", "Apple", "Pear", "Peach", "Blueberry"};
public Iterator getIterator() {
return new FruitIterator();
}
private class FruitIterator implements Iterator {
int index;
@Override
public boolean hasNext() {
return index < fruits.length;
}
@Override
public Object next() {
if(this.hasNext()) {
return names[index++];
}
return null;
}
}
}
Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow