Define una interfaz que declara los métodos necesarios para acceder secuencialmente a un grupo de objetos de una colección.
Nombre:
Iterator.
También conocido como:
Cursor.
Propósito:
Proporciona un modo de acceder a los elementos de un agregado sin mostrar su estructura interna.
Aplicabilidad:
Este patrón se utiliza generalmente cuando:
· Acceder al contenido de un objeto agregado sin exponer su representación interna.
· Permitir varios recorridos sobre objetos agregados.
· Proporcionar una interfaz uniforme para recorrer diferentes estructuras agregadas (iteración polimórfica).
Estructura:

Participantes:
· Iterator: Define una interfaz para recorrer los elementos.
· ConcreteIterator: Implementa la interfaz iterator.
· Aggregate: Define una interfaz para crear un objeto iterador.
· ConcreateAggregate: Implementa la interfaz de creación del iterador.
Consecuencias:
· Permite variaciones en el recorrido de un agregado.
· Los iteradores simplifican la interfaz Agregado.
· Se puede hacer mas de un recorrido a la vez sobre un agregado.
Patrones relacionados:
· Composite.
· Factory Method.
· Memento.
Etiquetas: Behavioral Patterns, Iterator, Patrones de Comportamiento