C#

Iterator Tasarım Deseni

Herkese merhaba, C# yazılarımıza kaldığımız yerden devam ediyoruz. Bu yazımızda tasarım desenlerinden biri olan iterator tasarım desenini anlatacağım. Hadi başlayalım !

Aslında bu tasarım deseni diğer tüm tasarım desenlerinde de olduğu gibi C# diline özgü bir kavram değil, tüm nesne yönelimli programlama dillerinde daha temiz kod yazabilmek için oluşturulmuş ve yazılımcılar tarafından da kabul görmüş yazılı olmayan kurallardır ve nesne yönelimli programlama yapılabilen tüm dillerde uygulanabilmektedir.

Iterator Tasarım Deseni Nedir?

Iterator tasarım deseni, bir koleksiyonun elemanlarına sırayla erişim sağlamak için kullanılan bir desendir. Bu desen, birbirinden farklı koleksiyonlar için aynı erişim arayüzünün kullanılmasını sağlayarak kodun daha esnek ve modüler hale getirilmesine yardımcı olur.

Iterator tasarım deseninde, bir Iterator nesnesi, koleksiyonun elemanlarına erişmek için kullanılır. Bu Iterator nesnesi, koleksiyonun iç yapısını gizleyerek, elemanlara erişim için bir arayüz sağlar.

C# İle Uygulanması

Aşağıda, Iterator tasarım deseni kullanılarak C# kodu ile bir koleksiyondaki elemanlara erişim gösterilmiştir.

// Iterator arayüzü
public interface IIterator
{
    bool HasNext();
    object Next();
}

// Koleksiyon arayüzü
public interface IAggregate
{
    IIterator CreateIterator();
}

// Koleksiyon sınıfı
public class MyCollection : IAggregate
{
    private object[] _items;
    public MyCollection()
    {
        _items = new object[] { "eleman1", "eleman2", "eleman3" };
    }

    public IIterator CreateIterator()
    {
        return new MyIterator(this);
    }

    // Koleksiyon elemanlarına erişmek için içerideki Iterator sınıfı
    private class MyIterator : IIterator
    {
        private MyCollection _collection;
        private int _current = 0;

        public MyIterator(MyCollection collection)
        {
            _collection = collection;
        }

        public bool HasNext()
        {
            return _current < _collection._items.Length;
        }

        public object Next()
        {
            object result = _collection._items[_current];
            _current += 1;
            return result;
        }
    }
}

// Kullanım
MyCollection collection = new MyCollection();
IIterator iterator = collection.CreateIterator();

while (iterator.HasNext())
{
    object item = iterator.Next();
    Console.WriteLine(item);
}

Yukarıdaki kod örneğinde, Iterator tasarım deseni kullanılarak bir MyCollection sınıfı oluşturulmuştur. Bu sınıf, IAggregate arayüzünü uygulayarak, bir CreateIterator() metodu sağlamaktadır. Bu metot, MyIterator sınıfından bir nesne döndürür. MyIterator sınıfı, IIterator arayüzünü uygulayarak, koleksiyonun elemanlarına erişim sağlar.

Kullanım kısmında, bir MyCollection nesnesi oluşturularak, CreateIterator() metodu kullanılarak bir IIterator nesnesi elde edilir. Bu IIterator nesnesi kullanılarak, koleksiyonun elemanlarına sırayla erişilir ve Console.WriteLine() metodu kullanılarak her eleman ekrana yazdırılır.

Sonuç

Iterator tasarım deseni, C# gibi nesne yönelimli programlama dillerinde sıklıkla kullanılan bir desendir. Bu desen, bir koleksiyon içindeki elemanlara sırayla erişmek için kullanılır ve kodun daha esnek ve modüler hale getirilmesine yardımcı olur. Bu makalede, Iterator tasarım deseni hakkında genel bir bakış sunduk ve C# kod örnekleriyle birlikte kullanımını gösterdik.

Evet iterator tasarım deseni ve C# ile uygulanması bu şekilde olmakta. Tüm C# yazılarımıza buraya, diğer tasarım deseni yazılarımıza buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.

Skorumuz:
Oy Vermek İçin Tıklayın
[Toplam: 0 Ortalama: 0]

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu