Sobes.tech
Junior — Middle

Pouvez-vous expliquer en quoi consiste le modèle de conception itérateur et comment il est utilisé?

sobes.tech IA

Réponse de l'IA

Le patron de conception Itérateur est destiné à parcourir séquentiellement les éléments d'une collection sans révéler sa structure interne.

Idée principale :

  • L'itérateur fournit une interface pour accéder aux éléments de la collection un par un.
  • Permet au code client de parcourir les éléments sans connaître la façon dont la collection est organisée en interne.

En C#, l'itérateur est implémenté à l'aide des interfaces IEnumerator et IEnumerable. En général, le mot-clé yield est utilisé pour simplifier la création d'itérateurs.

Exemple d'un itérateur 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; // retourne les éléments un par un
        }
    }

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

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

Ici, MyCollection implémente IEnumerable<int>, permettant d'utiliser foreach pour parcourir les éléments. L'itérateur cache les détails du stockage des données et offre un moyen simple de les parcourir.