Visitor

Architecture 🔴 Senior

Définition

Sépare un algorithme de la structure d'objets sur laquelle il opère. Permet d'ajouter de nouvelles opérations sans modifier les classes existantes.

Analogie

Un inspecteur qui visite différents types de bâtiments : même démarche, mais le rapport diffère selon le bâtiment.

Exemple de code

class TaxVisitor {
  visitBook(b) { return b.price * 0.05; }
  visitFood(f) { return f.price * 0.10; }
}
// item.accept(visitor)

Cas d'usage

Calculs sur un AST (compilateur), sérialisation polymorphe, rapports multi-formats.

Anti-pattern

Ajouter de nouveaux types de noeuds fréquemment — le visitor doit être modifie a chaque fois.
#architecture#interview#gof#behavioral

← → au clavier pour passer d'une fiche à l'autre