Iterator
Iterator es un patrón de diseño de comportamiento que permite acceder a los elementos de una colección sin exponer su representación subyacente (lista, pila, árbol, etc.), o la lógica de búsqueda.
Es extensamente usado en java y en bibliotecas como JDBC.
Ejemplo de uso:
Twitter twitter = new Twitter();
PostsIterator postsIterator = twitter.findPostsByHashtag("#java");
while (postsIterator.hasNext()){
Post post = postsIterator.getNext();
System.out.println(post.getContent());
}