Skip to topic | Skip to bottom
Home
Minfo
Minfo.GlTD4y1314r1.1 - 01 Nov 2013 - 14:59 - PhilippeCollettopic end

Start of topic | Skip to actions

TD 4: Design Patterns

Introduction

Créez un projet à partir de l'archive tp4-start-en.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 simualteur. 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)

Comment 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 : 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)

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 2013


to top


You are here: Minfo > GlTD4y1314

to top

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