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 IEnumerator və IEnumerable 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.