140 likes | 242 Views
Un visiteur… …venu d’ailleurs. Whooooooooooooooo !!!. Sommaire. Classification /JTT Intention /JBZ Motivation /JBZ Utilisation /JBZ Constituants /MSR Structure /MSR Collaboration /JTT Conséquence /JTT Considération d’implémentation /MSR Exemple d’implémentation /JBZ
E N D
Un visiteur… …venu d’ailleurs Whooooooooooooooo!!!
Sommaire • Classification /JTT • Intention /JBZ • Motivation /JBZ • Utilisation /JBZ • Constituants /MSR • Structure /MSR • Collaboration /JTT • Conséquence /JTT • Considération d’implémentation /MSR • Exemple d’implémentation /JBZ • Mini Projet / TT LE MONDE
Classification • Comportemental – Objet • Relation Dynamique => Objet • Un élément fait appel à un visiteur • Collaborations => Comportemental
Constituant(1/2) • Structure de l’objet • Représente la structure des éléments • liste, Set, Composite - Arbre • Visiteur • Interface • Définit les méthode de visite pour chaque classe concrète de la structure • Elément • Interface représentant les éléments constituant la structure de l’objet • Définit la méthode abstraite permettant l’appel au visiteur
Constituant(2/2) • Visiteur concret • Implémente les opérations du Visiteur • Définit un contexte pour la visite et garde son état local • Elément concret • Implémente la méthode d’appel au visiteur • Se passe en paramètre à la bonne méthode du visiteur
Conséquence • Avantages • Facile de rajouter de nouvelles opération (visiteur) • Le visiteur peut garder des états des éléments. On ne doit ainsi pas les passer en argument (…??...) • Les algorithmes de traitement d’un élément ne sont pas dans sa classe => meilleure séparation • Désavantage • Difficile de rajouter de nouveaux éléments => il faut changer chaque visiteur • L’encapsulation est limitée car il faut laisser les méthodes d’accès en public dans l’élément
Considération d’implémentation(1/2) • Chaque élément concret a une méthode associée dans le visiteur. • Rigueur dans la nomenclature, confusion • Une classe par nœuds, lourd si les nœuds ont les même propriétés. • Déclaration des accesseurs obligatoires(attribut public) pour les nœuds, afin d’accéder au contexte du nœud depuis le visiteur.
Considération d’implémentation(2/2) • Double-Dispatch: element, visitor • Traverser la structure • La structure de l’objet: collection, composite • Le visiteur: parcour dupliqué par visiteur • Itérateur séparé
Mini Projet • Simulateur de mise à jour de configuration d’équipement réseau.