Iterator

Iterator

Patrón de diseño de comportamiento

Este patrón de diseño permite recorrer una estructura de datos sin que sea necesario conocer la estructura interna de la misma. Es especialmente útil cuando trabajamos con estructuras de datos complejas, ya que nos permite recorrer sus elementos mediante un Iterador, el Iterador es una interface que proporciona los métodos necesarios para recorrer los elementos de la estructura de datos, los métodos más comunes son:

  • hasNext: Método que regresa un booleano para indicar si existen más elementos en la estructura por recorrer. True si existen más y false si hemos llegado al final y no hay más elementos por recorrer.
  • next: Regresa el siguiente elemento de la estructura de datos.
Estructura del patrón de diseño Iterator
Estructura del patrón de diseño Iterator

Los elementos del patrón Iterator se describen a continuación:

  • Client: Actor que utiliza al Iterator.
  • Aggregate: Interface que define la estructura de las clases que pueden ser iteradas.
  • ConcreteAggregate: Clase que contiene la estructura de datos que deseamos iterar.
  • IIterator: Interface que define la estructura de los iteradores, la cual define los métodos necesarios para poder realizar la iteración sobre el ConcreteAggregator.
  • ConcreteIterator: Implementación de un iterador concreto, el cual hereda de IIterator para implementar de forma concreta cómo iterar un ConcreteAggregate.
Diagrama de secuencia del patrón Iterator
Diagrama de secuencia del patrón Iterator
  • El cliente solicita al ConcreteAggregate la creación de un iterador.
  • El ConcreteAggregate crea un nuevo Iterador.
  • El cliente, para recorrer los elementos, entra en un ciclo hasta que no existen más elementos en el iterador, el método hasNext le indicará cuándo se ha llegado al final.
  • El cliente solicita el siguiente elemento al iterador mediante el método next.
  • Si existen más elementos nos regresamos al paso tres, esto se repite hasta finalizar el recorrido.

Ejemplo del mundo real

Mediante la implementación del patrón de diseño Iterator crearemos una aplicación que nos permita recorrer una estructura organizacional jerárquica, mediante la implementación de un iterador, el cual nos permitirá recorrer todo el árbol de la estructura de forma secuencial.

Descubre como el patrón Iterator nos ayuda a resolver este problema
Descubre como el patrón Iterator nos ayuda a resolver este problema

¿Sabes la importancia de los patrones de diseño?

Los patrones de diseño son la clave para crecer profesionalmente hacia la arquitectura de software, sin mencionar que los salarios son los más altos de la industria de IT, descúbrelo en este video.

🎉 Este video es parte del curso de patrones de diseño, inscríbete aquí 🎉

Acerca de este libro

Introducción a la arquitectura de software

Todo lo que acabas de ver en este artículo es solo una pequeña parte del libro Introducción a los patrones de diseño, el libro más completo de patrones de diseño en español, abarcamos 25 patrones de diseño junto con 25 proyectos del mundo real. Olvídate de aprender patrones de diseño con los ejemplos típicos de Internet de cómo hacer una pizza, animales y figuras geométricas. te invito a que veas mi libro:

Ver libro
Todos los derechos reservados ©