Design patterns
Образец итератора
Поиск…
Образец итератора
Коллекции являются одной из наиболее часто используемых структур данных в разработке программного обеспечения. Коллекция - это всего лишь группа объектов. Коллекция может представлять собой список, массив, карту, дерево или что угодно. Таким образом, коллекция должна предоставить некоторый способ доступа к своим элементам без раскрытия ее внутренней структуры. Мы должны иметь возможность перемещаться по нему, независимо от типа коллекции.
Идея шаблона итератора состоит в том, чтобы взять на себя ответственность за доступ к объекту коллекции и поместить его в объект итератора. Объект итератора в обратном порядке будет поддерживать порядок итераций, сохранить дорожку текущего элемента и должен иметь способ получить следующий элемент.
Обычно класс коллекции содержит две компоненты: сам класс и 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;
}
}
}