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.