Sobes.tech
Junior — Middle

¿Puede explicar en qué consiste el patrón de diseño iterador y cómo se aplica?

sobes.tech AI

Respuesta de la IA

El patrón de diseño Iterador está destinado a recorrer secuencialmente los elementos de una colección sin revelar su estructura interna.

Idea principal:

  • El iterador proporciona una interfaz para acceder a los elementos de la colección uno por uno.
  • Permite que el código cliente recorra los elementos sin saber cómo está organizada la colección internamente.

En C#, el iterador se implementa mediante las interfaces IEnumerator y IEnumerable. Normalmente, se usa la palabra clave yield, que simplifica la creación de iteradores.

Ejemplo de un iterador en C#:

using System;
using System.Collections;
using System.Collections.Generic;

class MyCollection : IEnumerable<int>
{
    private int[] data = {1, 2, 3, 4, 5};

    public IEnumerator<int> GetEnumerator()
    {
        foreach (var item in data)
        {
            yield return item; // devuelve los elementos uno por uno
        }
    }

    IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
}

class Program
{
    static void Main()
    {
        var collection = new MyCollection();
        foreach (var item in collection)
        {
            Console.WriteLine(item);
        }
    }
}

Aquí, MyCollection implementa IEnumerable<int>, permitiendo usar foreach para recorrer los elementos. El iterador oculta los detalles del almacenamiento de datos y proporciona una forma sencilla de recorrerlos.