迭代器模式主要是实现容器遍历。
public interface Iterator {
public boolean hasNext();
public String next() throws Exception;
}
public class ConcreteIterator implements Iterator {
private ProductList productList ;
private int index ;
public ConcreteIterator(ProductList productList) {
this .productList = productList;
this .index = 0;
}
public boolean hasNext() {
if (index < productList .length()) {
return true ;
} else {
return false ;
}
}
public String next() throws Exception {
String str = "" ;
if (!hasNext()) {
throw new Exception( "no next");
} else {
str = productList .getList().get(index );
index++;
}
return str;
}
}
public class ProductList {
public List<String> list = new ArrayList<String>();
public void add(String str) {
list.add(str);
}
public void remove(String str) {
list.remove(str);
}
public int length() {
return list .size();
}
public List<String> getList() {
return list ;
}
}
public class IteratorClient {
public static void main(String[] args) throws Exception {
ProductList list = new ProductList();
list.add( "str1" );
list.add( "str2" );
list.add( "str3" );
Iterator iterator = new ConcreteIterator(list);
while (iterator.hasNext()) {
System. out .println(iterator.next());
}
}
}