Millau Mix patterns

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.
  1. Utiliser le pattern Composite pour implémenter cette modélisation.
    Munissez chaque noeud du composite (village, quartier, pâté de maisons, maison) d'un champ nom et d'une méthode print() qui affiche son nom.
  2. 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
    
  3. Ecrivez une fonction de test qui affiche le village "Village 1"
  4. 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
    

Arbre généalogique