Sobes.tech
Junior — Middle

Vai jūs varat izskaidrot 'apmeklētāja' modeļa koncepciju un tā piemērošanu programmu izstrādē?

sobes.tech AI

Atbilde no AI

«Apmeklētāja» (Visitor) paraugs ļauj atdalīt algoritmus no objektiem, uz kuriem tie tiek izpildīti. Tas definē operāciju, kas tiek veikta objektu struktūras elementos, ļaujot pievienot jaunas operācijas, nemainot pašu elementu klases.

Pielietojums:

  • Kad ir nepieciešams veikt dažādas operācijas uz sarežģītas struktūras objektiem.
  • Kad bieži tiek pievienotas jaunas operācijas, bet objektu struktūra paliek stabila.

Piemērs C#:

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 apstrāde");
    }
    public void Visit(ElementB element) {
        Console.WriteLine("ElementB apstrāde");
    }
}

Šeit jaunas operācijas var pievienot, izveidojot jaunas apmeklētāju klases, nemainot elementu klases.