Sobes.tech
Junior — Middle

Proqramların dizaynında 'ziyarətçi' nümunəsinin konsepsiyasını və onun tətbiqini izah edə bilərsinizmi?

sobes.tech Süni İntellekt

AI-dan cavab

Ziyaretçi (Visitor) nümunəsi alqoritmləri obyektlərdən ayırmağa imkan verir. O, obyekt strukturu elementləri üzərində həyata keçirilən əməliyyatı müəyyən edir və yeni əməliyyatların elementlərin sinflərini dəyişmədən əlavə olunmasına imkan verir.

Tətbiqlər:

  • Çətin struktura malik obyektlər üzərində müxtəlif əməliyyatların həyata keçirilməsi lazım olduqda.
  • Tez-tez yeni əməliyyatlar əlavə olunur, lakin obyektlərin strukturu stabildir.

C# nümunəsi:

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şlənir");
    }
    public void Visit(ElementB element) {
        Console.WriteLine("ElementB işlənir");
    }
}

Burada, yeni əməliyyatlar yeni ziyarətçi sinflər yaradılmaqla əlavə oluna bilər, element sinflərini dəyişmədən.