Exercice : Carrés décorés

Code source de l'énoncé

(Extrait examen février 2019 - 5 points)

Compilez et exécutez le code qui se trouve dans le dossier enonce/.
Ce code permet de dessiner différents types de carrés.
Les classes permettant de dessiner les carrés se trouvent dans le package dessin.carres.
Ce package contient une classe mère : CarreSimple ; toutes les autres classes dérivent de CarreSimple.

Il vous est demandé d'implémenter une solution permettant de dessiner des carrés mélangeant plusieurs caractéristiques des sous-classes de CarreSimple.
  1. Quel pattern est particulièrement bien adapté à ce genre de situation ?
  2. Modifiez et complétez le code du package dessin.carres pour implémenter la possibilité de dessiner des carrés mélangeant plusieurs caractéristiques des sous-classes de CarreSimple.
  3. Pour illustrer votre implémentation, modifiez la classe Main de manière à :
    • Remplacer c1 par un carré qui a toutes les caractéristiques : une double bordure, des ronds bleus dans les coins, une croix au centre et des rectangles rouges sur ses côtés.
    • Remplacer c2 par un carré qui a une double bordure, des ronds bleus dans les coins, et des rectangles rouges sur ses côtés.
    • Remplacer c3 par un carré qui a une double bordure et une croix au centre.
    • Remplacer c4 par un carré qui a des ronds bleus dans les coins et des rectangles rouges sur ses côtés.
    • Remplacer c5 par un carré qui a une croix au centre et des rectangles rouges sur ses côtés.
    Les nouveaux carrés doivent être dessinés aux mêmes endroits que les carrés de départ.
    Voir dessin-carres.jpg pour une image du résultat demandé.