Mélange de patterns made in Millau
Composite / Visitor
Exercice :
On modélise un vilage de la manière suivante :
- Un village est composé de quartiers.
- Un quartier est composé de pâtés de maisons et / ou de maisons.
- Un pâté de maisons est composé de maisons.
On modélise un vilage de la manière suivante :
- Un village est composé de quartiers.
- Un quartier est composé de pâtés de maisons et / ou de maisons.
- Un pâté de maisons est composé de maisons.
-
Utiliser le pattern Composite pour implémenter cette modélisation.
Munissez chaque noeud du composite (village, quartier, pâté de maisons, maison) d'un champnom
et d'une méthodeprint()
qui affiche son nom. -
Créez un village de test correspondant à cette structure :
Village 1 Quartier 1 Pâté 1.1 Maison 1 Maison 2 Pâté 1.2 Maison 3 Maison 4 Quartier 2 Pâté 2.1 Maison 5 Maison 6 Maison 7 Maison 8 Quartier 3 Maison 9 Maison 10
- Ecrivez une fonction de test qui affiche le village "Village 1"
-
Différents acteurs sillonnent le village :
Le facteur, qui visite toutes les maisons.
L'épicerie ambulante ne visite pas chaque maison mais chaque quartier et pâté de maison.
En utilisant le pattern Visitor, implémentez un facteur et une épicerie.
En faisant visiter le village de test à un facteur et une épicerie, vous devriez avoir un affichage ressemblant à :=== Facteur === Facteur visiting Maison : Maison 1 Facteur visiting Maison : Maison 2 Facteur visiting Maison : Maison 3 Facteur visiting Maison : Maison 4 Facteur visiting Maison : Maison 5 Facteur visiting Maison : Maison 6 Facteur visiting Maison : Maison 7 Facteur visiting Maison : Maison 8 Facteur visiting Maison : Maison 9 Facteur visiting Maison : Maison 10 === Epicerie === Epicerie visiting Village : Village 1 Epicerie visiting Quartier : Quartier 1 Epicerie visiting PateDeMaisons : Pâté 1.1 Epicerie visiting PateDeMaisons : Pâté 1.2 Epicerie visiting Quartier : Quartier 2 Epicerie visiting PateDeMaisons : Pâté 2.1 Epicerie visiting Quartier : Quartier 3