Junior — Middle
Pouvez-vous expliquer le concept du patron 'visiteur' et son application dans la conception de programmes?
sobes.tech IA
Réponse de l'IA
Le motif « visiteur » (Visitor) permet de séparer les algorithmes des objets sur lesquels ils s’exécutent. Il définit une opération qui est effectuée sur les éléments d’une structure d’objets, permettant d’ajouter de nouvelles opérations sans modifier les classes des éléments.
Application:
- Lorsqu’il est nécessaire d’effectuer différentes opérations sur des objets d’une structure complexe.
- Lorsqu’on ajoute fréquemment de nouvelles opérations, mais que la structure des objets reste stable.
Exemple en 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("Traitement de ElementA");
}
public void Visit(ElementB element) {
Console.WriteLine("Traitement de ElementB");
}
}
Ici, de nouvelles opérations peuvent être ajoutées en créant de nouvelles classes de visiteurs, sans changer les classes d’éléments.