Junior — Middle
შეგიძლიათ ახსნათ, რა არის ინჟინერული დიზაინის ნიმუში და როგორ გამოიყენება?
sobes.tech AI
პასუხი AI-სგან
დიზაინის ნიმუში იტერატორი (Iterator) განკუთვნილია კოლექციის ელემენტების თანმიმდევრულად გადალახვისთვის, მისი შიდა სტრუქტურის გამჟღავნების გარეშე.
ძირითადი იდეა:
- იტერატორი უზრუნველყოფს ინტერფეისს, რათა წვდომა ჰქონდეს კოლექციის ელემენტებზე ერთდროულად.
- ეს საშუალებას აძლევს მომხმარებელ კოდს გადალახოს ელემენტები, არ იცის, როგორ არის ორგანიზებული კოლექცია შიგნით.
C#-ში, იტერატორი რეალიზებულია IEnumerator და IEnumerable ინტერფეისების საშუალებით. ჩვეულებრივ, გამოიყენება yield საკვანძო სიტყვა, რომელიც ამარტივებს იტერატორების შექმნას.
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; // აბრუნებს ელემენტებს ერთდროულად
}
}
IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
}
class Program
{
static void Main()
{
var collection = new MyCollection();
foreach (var item in collection)
{
Console.WriteLine(item);
}
}
}
აქ, MyCollection ახორციელებს IEnumerable<int>, რაც საშუალებას აძლევს გამოიყენოს foreach ელემენტების გადასალახად. იტერატორი მალავს მონაცემების შენახვის დეტალებს და უზრუნველყოფს მათ გადალახვის მარტივ გზას.