Skip to topic | Skip to bottom
Home
Minfo
Minfo.GlTD4y1516r1.3 - 02 Nov 2015 - 13:51 - PhilippeCollettopic end

Start of topic | Skip to actions

TD 4: Design Patterns

Introduction

Créez un projet à partir de l'archive tp4-start.zip:. C'est une correction quasi-complète du TD précédent. Prenez un peu de temps pour retrouver les éléments de solution dans le projet.

Exercice 1: Corriger le simulateur (pattern Observer)

Vous avez remarqué qu'il y a une classe Launcher avec une méthode main et que l'on s'en sert pour démarrer le simulateur. Dans la version actuelle, you verrez que cela ne marche pas vraiment. Vous devez corriger cela.

TIP : tout est dans le titre...

Exercice 2: Corriger le resize de la fenêtre (le retour du pattern Observer)

Il y a encore un problème avec l'application lorsque vous retaillez l'image. Allez, on corrige !

TIP : Allez jeter un oeil sur JPanel#addComponentListener()

Exercice 3: la révolution industrielle de Frankenstein (pattern Factory et pattern Abstract Factory) - à terminer en deuxième séance

Comme ajouter une créature à la fois est assez embêtant, vous allez créer une usine CreatureFactory qui peut créer un ensemble de créatures d'un coup. On doit lui fournir au moins les dimensions du plan de simulation et le nombre de créatures à créer.

  • Commencez par faire des créatures toutes de la même couleur.
  • Réfléchissez ensuite à ce qu'il vous faut pour créer des créatures de différents types, comment abstraire la signature méthode de création "commune"

TIP : Plusieurs remarques pour vous aider :

  • Commencez bien par créer une factory par type de créatures. N'essayez pas de faire une Abstract Factory dès le départ.
  • Chaque factory doit implémenter la même interface.
  • Si vous avez l'impression de réimplémenter le constructeur, c'est un peu normal, la factory a un objectif (contrôle de conformité dans une famille, etc.).
  • Appliquer le pattern factory récursivement, avec une usine à usine. La facture de plus haut niveau va ainsi devenir une forme d'Abstract Factory,

Vous pouvez même faire intervenir un pattern singleton pour finaliser l'architecture.

Exercice 4: Colorier (pattern Strategy) - à faire en deuxième séance

Colorions notre usine. Pour cela, il vous faut introduire un nouveau paramètre qui sera une référence sur une instance de IColorPicker qui aura une seule méthode getNextColor(). Ensuite vous implémentez plusieurs stratégies :

  • une pour refaire la couleur unique
  • une qui itère sur le cube de couleur (code déjà fourni dans les versions précédentes)
  • une dernière qui fait des groupes de couleurs (10 d'une même couleur, puis 10 d'une autre...).

Une fois terminé, réfléchissez à l'interface : you devriez réaliser que c'est une forme d'itérateur, donc que vous auriez pu l'implémenter comme une simple interface Iterator. Quels seraient les avantages/inconvénients ?

-- PhilippeCollet - 01 Nov 2015


to top


You are here: Minfo > GlTD4y1516

to top

Copyright © 1999-2023 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding WIKIDeptinfo? Send feedback