Exercice UML
Un éditeur de jeux possède un jeu permettant aux enfants de connaître les animaux. Les enfants peuvent, en particulier, apprendre la forme et le cri des animaux parmi lesquels le chat et la vache. Le chat est modélisé par la classe LeChat possédant au moins les deux méthodes formeChat() et criChat() et la vache est modélisée par la classe LaVache possédant les deux méthodes criVache() et formeVache().
Comme le montrent les noms des méthodes, la première spécification de ce jeu est propre aux animaux modélisés. L’éditeur souhaite améliorer ce jeu en créant une interface commune à tous les animaux qui lui permette d’en ajouter de nouveaux, sans modifier l’inter- face avec le client, et d’utiliser le polymorphisme dans la gestion des animaux (manipuler des troupeaux…).
1. Proposez une modélisation des classes pour cette nouvelle version du jeu en faisant apparaître le client.
2 .On souhaite réutiliser tout le code développé dans la version précédente. Proposez une modélisation permettant d’incorporer les anciennes méthodes pour éviter de les récrire.
3. Est-il possible de généraliser ce raisonnement pour les applications de même type ? Si c’est le cas, proposez le patron générique correspondant.
La correction des exercices (voir page 2 en bas)