Licence 3 Informatique – Génie Logiciel
TP5 : Patrons de conception 2
Objectifs
ü Manipuler les patterns Observable et Décorateur
ü Comprendre le principe SOLID
Exercice 1 : Le patron de conception observable
Pour cet exercice nous allons prendre un exemple très connu directement tiré de « Head First
Design Patterns » à savoir la station météo (voir Figure 1).
Figure 1 Exemple de la station météo
L’idée générale de cette application est qu’une station météo récupère des valeurs de
température, d’humidité et de pression auprès de capteurs (les cercles) et les fournit à un service
chargé de les afficher. Dans cet exemple, l’objet WeatherData est le sujet observé et les
afficheurs (les losanges) sont les observateurs. Nous devons réaliser cette deuxième partie de
l’application. Nous supposerons donc dans un premier temps que les capteurs et la station météo
existent.
Génie Logiciel
Publicité
Licence 3 Informatique – Génie Logiciel
Une spécification incomplète nous est fournie pour réaliser notre application (voir Figure 2)
Figure 2:Spécifications
Cette solution n’est pas satisfaisante car elle ne respecte pas les principes SOLID. En effet si
on doit changer le nombre d’affichage, il est nécessaire de modifier le code de notre application.
De plus, bien que les trois observateurs aient choisi d’utiliser la même méthode d’affichage il
n’y a pas pour l’instant d’interface définie et de plus on travaille directement avec les
implémentations de cette interface ce qui couple fortement notre classe WeatherData avec les
afficheurs.
Consignes
ü Proposez un diagramme classe basé sur le patron Observer qui permette de découpler la
classe WeatherData des afficheurs.
ü Implémentez votre solution proposée
ü A l’aide d’objet Mock, proposez des tests permettant de tester le bon fonctionnement
de votre solution
Exercice 2 : Observable en Java 8
Publicité
Depuis Java 8, le patron de conception Observable est disponible dans le paquetage
java.util. En étudiant la JDK, il va falloir reprendre l’exercice précédent en utilisant cette
fois ci directement Observable.
Consignes
ü Reprenez l’exercice précédent en utilisant Observable.
ü Modifiez les tests pour permettre de prendre en compte ces modifications. En
particulier, réfléchissez à comment utiliser Mockito pour tester la partie observable.
Génie Logiciel
Licence 3 Informatique – Génie Logiciel
Exercice 3 : Reprise de l’exercice du concours de galettes
L’objectif de cet exercice va être d’appliquer le patron Observable à notre concours de
mangeurs de galettes. Pour cela nous allons ajouter une nouvelle classe qui représentera les
Supporteurs du concours. Ces supporteurs sont là pour assister le concours et applaudisse à
chaque fois qu’un concurrent est éliminé.
Consignes
ü Modifiez le diagramme de classe pour intégrer cette classe Supporteur. Utiliser un
Publicité
patron observable pour découpler les spectateurs du concours.
ü Ecrivez les différents tests unitaires associés.
Exercice 4 : Finalisation du concours
Le succès grandissant de notre concours entraine l’apparition de plus en plus de concurrents qui
proposent d’ajouter toujours plus de galettes. La conception actuelle reposant sur des fabriques
ne devient plus maintenable, vous décidez donc de reprendre la conception en utilisant cette
fois ci un patron de conception Décorateur.
Consignes
ü Modifiez le diagramme de classe pour introduire ce nouveau patron dans la gestion des
ingrédients des galettes
ü Modifiez le code de votre application
ü Modifiez les tests au fur et à mesure de votre conception
Génie Logiciel