Junior — Middle
Pode explicar o que é o padrão de projeto iterador e como ele é aplicado?
sobes.tech IA
Resposta da IA
O padrão de design Iterador destina-se a percorrer sequencialmente os elementos de uma coleção sem revelar a sua estrutura interna.
Ideia principal:
- O iterador fornece uma interface para aceder aos elementos da coleção um de cada vez.
- Permite ao código cliente percorrer os elementos sem saber como a coleção está organizada internamente.
Em C#, o iterador é implementado usando as interfaces IEnumerator e IEnumerable. Normalmente, usa-se a palavra-chave yield, que simplifica a criação de iteradores.
Exemplo de um iterador em 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; // devolve os elementos um de cada vez
}
}
IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
}
class Program
{
static void Main()
{
var collection = new MyCollection();
foreach (var item in collection)
{
Console.WriteLine(item);
}
}
}
Aqui, MyCollection implementa IEnumerable<int>, permitindo usar foreach para percorrer os elementos. O iterador oculta os detalhes do armazenamento de dados e fornece uma forma simples de percorrê-los.