Sobes.tech
Junior — Middle

İterator dizayn nümunəsinin nə olduğunu və necə tətbiq olunduğunu izah edə bilərsinizmi?

sobes.tech Süni İntellekt

AI-dan cavab

Dizayn nümunəsi İterator (Iterator), kolleksiyanın elementlərini ardıcıl şəkildə keçmək üçün nəzərdə tutulmuşdur və onun daxili strukturunu açıqlamadan.

Əsas fikir:

  • İterator, kolleksiyanın elementlərinə bir-bir giriş üçün interfeys təmin edir.
  • Müştəri kodunun, kolleksiyanın daxili təşkilatını bilmədən elementləri keçməsinə imkan verir.

C# dilində, iteratör IEnumeratorIEnumerable interfeysləri vasitəsilə həyata keçirilir. Adətən, yield açar sözü istifadə olunur, bu da iteratörlərin yaradılmasını sadələşdirir.

C# dilində iteratör nümunəsi:

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; // elementləri bir-bir qaytarır
        }
    }

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

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

Burada, MyCollection IEnumerable<int>-i həyata keçirir, bu da foreach istifadə edərək elementlər üzərində keçidə imkan verir. İterator məlumatların saxlanma detalları gizlədir və onları keçmək üçün sadə bir yol təqdim edir.