迭代器模式: 提供一种方法访问一个容器中的各个对象,同时不需要暴露该对象的内部细节
其uml图如下
作为一个java讲迭代器模式并不是纯粹的说这个模式,而是让大家加深对Iterator接口的理解,Collection如何接口迭代器接口;
单从java语言的角度来说,这个模式甚至由设计模式转变成了一种工具;
这个模式在java中基本成为了工具,所以不推荐独自设计开发,可以通过该模式来了解集合中的迭代器接口
我们看如何实现一个迭代器
现在假设有书包 ,书本,和遍历书需要,迭代器的核心功能就是封装对原有集合的访问细节,并提供对该集合的访问能力
public interface Iterator{
public boolean haveNext();
public Book next();
}
public interface Bag{
public add(Book book);
public take(Book book);
public Iterator iterator();
}
public class ClassOneBag{
private List<Book> books = new List();
public add(Book book){
books.add(book);
}
public take(Book book){
books.remove(book);
}
public Iterator iterator(){
return new BookIterator(books);
}
}
public interface BookIterator{
private List<Book> books = new List();
public boolean haveNext(){
}
public Book next(){
}
}