Skip to main content

Inicia sesión en CleanKata

Sigue tu progreso, gana XP y desbloquea todas las lecciones.

Al iniciar sesión aceptas nuestros Términos de uso y Política de privacidad.

Patrones de Diseño80 XP8 min

Iterator: Recorriendo Colecciones

Recorre elementos de cualquier colección sin exponer su estructura interna — el cliente nunca necesita saber si es una lista, árbol o grafo.

Por qué importa

Cuando el código cliente se adentra en los internos de una colección — accediendo directamente a ._items[i] — se acopla a la implementación. Cambia una lista por un árbol y cada cliente se rompe. El patrón Iterator da al código cliente una forma única y uniforme de recorrer cualquier colección: simplemente pide el siguiente elemento. La colección controla cómo se recorre a sí misma; el cliente nunca ve su interior.

Integrado en el lenguaje

El for x in obj de Python llama a __iter__ y luego llama repetidamente a __next__ — Iterator es el protocolo. El for...of de TypeScript llama a Symbol.iterator. Los generadores en ambos lenguajes son fábricas de Iterator. Cada vez que has escrito for x in algo, has usado Iterator.

💡Conclusión clave

Iterator desacopla el recorrido de la colección — puedes cambiar la estructura interna o añadir un nuevo orden de recorrido sin tocar el código cliente.

🔧 Algunos ejercicios pueden tener errores. Si algo parece incorrecto, usa el botón Feedback (abajo a la derecha) para reportarlo — nos ayuda a corregirlo rápido.

Pista: Iterator desacopla el recorrido de la colección — puedes cambiar la estructura interna o añadir un nuevo orden de recorrido sin tocar el código cliente.

✗ Tu versión

Iterator: Recorriendo Colecciones — CleanKata — CleanKata