« Patrons de conception/Visiteur » : différence entre les versions

Contenu supprimé Contenu ajouté
Aucun résumé des modifications
imported>Jydidier
wikif.
Ligne 6 :
 
 
----
Definition
 
== Exemple ==
Dans un langage objet, le visiteur permet de separer le traitement des objet auquels il sera appliqué.
 
prenonsPrenons une classe <tt>ObjetPere</tt>, de laquelle heriteronthériteront <tt>Objet1, Objet2 et Objet3</tt>, elles possederontposséderont la methodeméthode <tt>accept(Visitor v)</tt>
----
Exemple
 
void ObjetDeType1::accept( Visitor * v ) {
prenons une classe ObjetPere, de laquelle heriteront Objet1, Objet2 et Objet3, elles possederont la methode accept(Visitor v)
v->visitObjetDeType1( this ) ;
void ObjetDeType1::accept( Visitor * v ) {
}
v->visitObjetDeType1( this ) ;
 
creonsCréons la classe <tt>Visitor</tt>, dont heriteronthériteront <tt>Visiteur1</tt> et <tt>Visiteur2,</tt>. dansDans chacun de ces objets, on retrouvera une methode <tt>visiterObjet1(Objet1 a), visiterObjet2(Obejt2 b) et visiterObjet3(Objet3 c)</tt>
 
void MonVisiteur::visitObjetDeType1( ObjetDeType1 * objet ) {
// Traitement d'un objet de type 1
}
void MonVisiteur::visitObjetDeType2( ObjetDeType2 * objet ) {
// Traitement d'un objet de type 2
}
void MonVisiteur::visitObjetDeType3( ObjetDeType3 * objet ) {
// Traitement d'un objet de type 3
}
 
== Lien externe ==
}
* {{fr}}[http://pcaboche.developpez.com/article/design-patterns/programmation-modulaire/?page=page_5]
 
 
void MonVisiteur::visitObjetDeType2( ObjetDeType2 * objet ) {
// Traitement d'un objet de type 2
 
}
 
 
void MonVisiteur::visitObjetDeType3( ObjetDeType3 * objet ) {
// Traitement d'un objet de type 3
 
}
 
plus d'information :
[http://pcaboche.developpez.com/article/design-patterns/programmation-modulaire/?page=page_5]
 
[[Catégorie:Patron de conception]]