Iterator 迭代器模式
迭代器模式:
提供一種方法來訪問聚合對象,而不用暴露這個對象的內部表示,其別名爲遊標(Cursor)。迭代器模式是一種對象行爲型模式。
迭代器模式就是順序訪問聚集中的對象,一般來說,集合中非常常見,如果對集合類比較熟悉的話,理解本模式會十分輕鬆。
這句話包含兩層意思:一是需要遍歷的對象,即聚集對象,二是迭代器對象,用於對聚集對象進行遍歷訪問.示例類圖:
示例代碼:
public interface Iterator {
public boolean hasNext();
public Object next();
}
public interface Iterable {
public Iterator iterator();
}
public class NameContainer implements Iterable {
String names[] = { "Robert", "John", "Julie", "Tom" };
@Override
public Iterator iterator() {
return new NameIterator(this);
}
}
public class NameIterator implements Iterator {
private NameContainer nameContainer;
private int index;
public NameIterator(NameContainer nameContainer) {
this.nameContainer = nameContainer;
}
@Override
public boolean hasNext() {
if (index < nameContainer.names.length) {
return true;
}
return false;
}
@Override
public Object next() {
if (hasNext()) {
return nameContainer.names[index++];
}
return null;
}
}
// 測試
public class IteratorTest {
public static void main(String[] args) {
Iterable iterable = new NameContainer();
Iterator iterator = iterable.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
}
}