Sobes.tech
Junior — Middle

Siz 'mehmonga' shablonining konseptini va uning dasturlashda qo'llanilishini tushuntira olasizmi?

sobes.tech AI

AIdan javob

Visitor naqshasi algoritmlarni obyektlardan ajratishga imkon beradi. U obyektlar tuzilmasidagi elementlar ustida bajariladigan operatsiyani belgilaydi va yangi operatsiyalarni elementlarning sinflarini o'zgartirmasdan qo'shishga imkon beradi.

Qo'llanilishi:

  • Murakkab tuzilmadagi obyektlar ustida turli operatsiyalar bajarilishi kerak bo'lsa.
  • Yangi operatsiyalar tez-tez qo'shilsa, ammo obyektlar tuzilmasi barqaror bo'lsa.

C# misoli:

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 ni qayta ishlash");
    }
    public void Visit(ElementB element) {
        Console.WriteLine("ElementB ni qayta ishlash");
    }
}

Bu yerda, yangi operatsiyalarni yangi tashrif buyuruvchilar sinflarini yaratish orqali qo'shish mumkin, element sinflarini o'zgartirmasdan.