Iterator es un patrón de diseño de comportamiento que permite el recorrido secuencial por una estructura de datos compleja sin exponer sus detalles internos.
Gracias al patrón Iterator, los clientes pueden recorrer elementos de colecciones diferentes de un modo similar, utilizando una única interfaz iteradora.
Ejemplos de uso: El patrón es muy común en el código PHP. Muchos frameworks y bibliotecas lo utilizan para proporcionar una forma estandarizada de recorrer sus colecciones.
El PHP tiene una interfaz Iteradora integrada que se puede utilizar para crear iteradores a medida compatibles con el resto del código PHP.
Identificación: El patrón Iterator es fácil de reconocer por sus métodos de navegación (como next, previous y otros). El código cliente que utiliza iteradores puede no tener acceso directo a la colección recorrida.
Ejemplo conceptual
Este ejemplo ilustra la estructura del patrón de diseño Iterator y se centra en las siguientes preguntas:
¿De qué clases se compone?
¿Qué papeles juegan esas clases?
¿De qué forma se relacionan los elementos del patrón?
Después de conocer la estructura del patrón, será más fácil comprender el siguiente ejemplo basado en un caso de uso real de PHP.
index.php: Ejemplo conceptual
Output.txt: Resultado de la ejecución
Ejemplo del mundo real
Como PHP ya cuenta con una interfaz Iteradora integrada que proporciona una práctica integración con bucles foreach, es muy fácil crear tus propios iteradores para recorrer casi cualquier estructura de datos imaginable.
Este ejemplo del patrón Iterator proporciona un acceso fácil a archivos CSV.