Visitor

Architecture 🔴 Senior

Definition

Separe un algorithme de la structure d'objets sur laquelle il opere. Permet d'ajouter de nouvelles operations sans modifier les classes existantes.

Analogie

Un inspecteur qui visite differents types de batiments : meme demarche, mais le rapport differe selon le batiment.

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), serialisation polymorphe, rapports multi-formats.

Anti-pattern

Ajouter de nouveaux types de noeuds frequemment — le visitor doit etre modifie a chaque fois.
#architecture#interview#gof#behavioral