Informatique > Développement logiciel >
Visitor

Dernière mise à jour le vendredi 26 avril 2024.

 

Définition :

La version audio de ce document vous est offerte par www.studio-coohorte.fr. Le Studio Coohorte vous donne accès à meilleure synthèse audio du marché dans une interface élégante et puissante. Si vous le souhaitez, vous pouvez en savoir plus et tester vous-même leur service avancé de text-to-speech.

En informatique et en développement logiciel, le concept de « Visitor » est un patron de conception permettant de séparer l'algorithme à exécuter à partir de la structure d'un objet. Il permet de parcourir les éléments d'une structure de données complexe sans modifier cette structure, en définissant des opérations distinctes pour chaque type d'objet à traiter. Cela favorise la modularité et la flexibilité du code.

Le concept Visitor en développement logiciel

Le design pattern Visitor est un pattern de conception fréquemment utilisé en programmation orientée objet. Il permet de séparer un algorithme d'une structure de données sur laquelle il agit.

Principe de fonctionnement

Le pattern Visitor repose sur le principe de double dispatch. En d'autres termes, lorsqu'un objet structure complexe doit être parcouru par un algorithme, c'est à l'objet de déclencher l'appel à cet algorithme en lui passant en paramètre un objet visiteur adapté.

Avantages du pattern Visitor

L'utilisation du pattern Visitor permet d'ajouter aisément de nouvelles fonctionnalités sans avoir à modifier les classes existantes. Cela favorise la séparation des préoccupations et augmente la maintenabilité du code.

Exemple d'application

Un exemple classique d'application du pattern Visitor est le calcul de la taille totale des éléments d'une structure arborescente, telle qu'un arbre binaire. Plutôt que d'ajouter une méthode de calcul de taille à chaque classe d'élément de l'arbre, on peut créer un visiteur SizeVisitor qui se chargera de parcourir l'arbre et de calculer la taille totale.

En conclusion, le pattern Visitor est un outil puissant pour ajouter de nouvelles fonctionnalités à une structure de données sans en altérer la conception initiale. Il favorise un code modulaire, flexible et évolutif.

 

Si vous souhaitez approfondir ce sujet, nous vous conseillons ces ouvrages.

 

Les sujets suivants pourraient également vous intéresser :