Junior — Middle
Kas saaksite selgitada 'külastaja' mustri ja selle rakendust tarkvaraarenduses?
sobes.tech AI
Vastus AI-lt
«Külastaja» (Visitor) muster võimaldab eraldada algoritmid objektidest, millele nad rakenduvad. See määratleb operatsiooni, mis teostatakse objekti struktuuri elementidel, võimaldades lisada uusi operatsioone ilma elementide klasside muutmiseta.
Rakendused:
- Kui on vaja teostada erinevaid operatsioone keeruka struktuuri objektidel.
- Kui sageli lisatakse uusi operatsioone, kuid objektide struktuur jääb stabiilseks.
Näide C#-s:
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 töötlemine");
}
public void Visit(ElementB element) {
Console.WriteLine("ElementB töötlemine");
}
}
Siin saab uusi operatsioone lisada, luues uusi külastaja klasse, muutmata elementide klasse.