Sobes.tech
Junior — Middle

Ziyaretçi desen pattern kavramını ve program tasarımındaki kullanımını açıklayabilir misiniz?

sobes.tech yapay zeka

AI'dan gelen yanıt

Ziyaretçi (Visitor) deseni, algoritmaları nesnelerden ayırmaya olanak tanır. Bu desen, nesne yapısındaki öğeler üzerinde gerçekleştirilen işlemi tanımlar ve yeni işlemler eklemeyi, öğe sınıflarını değiştirmeden mümkün kılar.

Uygulama:

  • Karmaşık bir yapıdaki nesneler üzerinde farklı işlemler gerçekleştirilmesi gerektiğinde.
  • Sık sık yeni işlemler ekleniyor ancak nesne yapısı istikrarlı kalıyorsa.

C# örneği:

interface IVisitor {
    void Visit(ElementA element);
    void Visit(ElementB element);
}

interface IElement {
    void Accept(IVisitor visitor);
}

class ElementA : IElement {
    public void Accept(IVisitor visitor) {
        visitor.Visit(this);
    }
}

class ElementB : IElement {
    public void Accept(IVisitor visitor) {
        visitor.Visit(this);
    }
}

class ConcreteVisitor : IVisitor {
    public void Visit(ElementA element) {
        Console.WriteLine("ElementA işleniyor");
    }
    public void Visit(ElementB element) {
        Console.WriteLine("ElementB işleniyor");
    }
}

Burada, yeni işlemler, ziyaretçi sınıfları oluşturarak eklenebilir, öğe sınıflarını değiştirmeden.