Junior — Middle
Puoi spiegare il concetto del pattern 'visitante' e la sua applicazione nella progettazione di programmi?
sobes.tech AI
Risposta dell'AI
Il pattern «visitor» (Visitante) consente di separare gli algoritmi dagli oggetti su cui vengono eseguiti. Definisce un’operazione che viene eseguita sugli elementi di una struttura di oggetti, permettendo di aggiungere nuove operazioni senza modificare le classi degli elementi.
Applicazione:
- Quando è necessario eseguire operazioni diverse su oggetti di una struttura complessa.
- Quando si aggiungono frequentemente nuove operazioni, ma la struttura degli oggetti rimane stabile.
Esempio in 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("Elaborazione di ElementA");
}
public void Visit(ElementB element) {
Console.WriteLine("Elaborazione di ElementB");
}
}
Qui, nuove operazioni possono essere aggiunte creando nuove classi visitatori, senza modificare le classi degli elementi.