intention séparer les traitements appliquées à différents type de nœuds d’une structure à...

5
Intention Séparer les traitements appliquées à différents type de nœuds d’une structure à l’algorithme de parcours

Upload: deline-delattre

Post on 04-Apr-2015

105 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Intention Séparer les traitements appliquées à différents type de nœuds d’une structure à l’algorithme de parcours

Intention• Séparer les traitements appliquées à différents

type de nœuds d’une structure à l’algorithme de parcours

Page 2: Intention Séparer les traitements appliquées à différents type de nœuds d’une structure à l’algorithme de parcours

Motivations• Permet l’ajout de nouveaux types d’actions sur

les objets de la structure• Exemple : Système de fichier

• Renommage massif• Extraction selon type (*.png,*.jpg,… -> Images)

Page 3: Intention Séparer les traitements appliquées à différents type de nœuds d’une structure à l’algorithme de parcours

Utilisation• Structure contenant un nombre de différent

types de nœud fixe• Structure sur laquelle on peut envisager

d’appliquer plusieurs type de traitements• Exemple :

• Système de fichiers• Compilateurs (variables, fonctions, opérateurs, …)• Liste de produits

Page 4: Intention Séparer les traitements appliquées à différents type de nœuds d’une structure à l’algorithme de parcours

Exemple d’implémentation• Eléments :

• Chambre à coucher• WC• Cuisine• Salon• …

• Visiteurs :• Ménagère• Peintre• Décorateur• Voleurs

Page 5: Intention Séparer les traitements appliquées à différents type de nœuds d’une structure à l’algorithme de parcours

class Class Mo...

Toilettes

+ accept(Visiteur) : voidTerrasse

+ accept(Visiteur) : voidSallon

+ accept(Visiteur) : voidSalleDeBain

+ accept(Visiteur) : void

Piece

+ accept(Visiteur) : void+ getName() : String+ getSize() : Dimension+ setSize(Dimension) : void

ChambreACoucher

+ accept(Visiteur) : voidBureau

+ accept(Visiteur) : void

Menagere

+ visit(Bureau) : void+ visit(ChambreACoucher) : void+ visit(SalleDeBain) : void+ visit(Sallon) : void+ visit(Terrasse) : void+ visit(Toilettes) : void

«interface»Visiteur

+ visit(Bureau) : void+ visit(ChambreACoucher) : void+ visit(SalleDeBain) : void+ visit(Sallon) : void+ visit(Terrasse) : void+ visit(Toilettes) : void

Voleur

+ getNbObjetsVoles() : int+ visit(Bureau) : void+ visit(ChambreACoucher) : void+ visit(SalleDeBain) : void+ visit(Sallon) : void+ visit(Terrasse) : void+ visit(Toilettes) : void

Maison

1