Académique Documents
Professionnel Documents
Culture Documents
I Patterns créationnels (creational)
Exercice 1 :
proposez une implémentation d'une application qui veut créer un seul point d'accès au pilote de la
carte son, en se basant sur la patron singleton.
II Patterns structuraux (structural)
Exercice 2:
proposer une solution qui permette de modéliser le système de gestion de fichiers suivant : Les
fichiers, les raccourcis et les répertoires sont contenus dans des répertoires et possèdent un nom. Un
raccourci peut concerner un fichier ou un répertoire. Au sein d'un répertoire donné, un nom ne peut
identifier qu'un seul élément (fichier, sousrépertoire ou raccourci)
Exercice 3:
Soit la description de ce patron pour des listes d’entiers donnée dans la figure 1.
Fig1 : Diagramme de classe pour les listes
1. Faites apparaître et justifier l’utilisation du patron singleton dans votre implémentation.
Implémentez de façon récursive les fonctions suivantes : append, putlast, reverse.
append : ListeDEntier ListeDEntier > ListeDEntier : concatène simplement deux listes en
une seule. Par exemple soient l1 = 1 2 3 et l4 = 4 5 6 alors l1.append(l2) sera la liste 1 2 3 4 5
6.
putlast : ListeDEntier int > ListeDEntier : ajoute l’entier à la fin de la liste. Par exemple
l1.putlas(4) sera 1 2 3 4.
reverse : ListeDEntier > ListeDEntier : produit une nouvelle liste inversée. Par exemple
l1.reverse() produira une nouvelle liste représentant 3 2 1.
Exercice 4:
L'objectif est d'élaborer un diagramme de classe permettant la représentation des polynômes à une
variable réelle.
Exemple :
0 − 100 − Z4
3.5X2 + 2X
Y 3 + Y 2 + Y
Hypothèse : nous considérerons le type float comme une bonne réalisation informatique des réels
mathématiques, et supposons que les polynômes manipulés sont homogènes à une seule variable.
Question 1 :
Définissez une classe de variable, une classe de constante réduite au flottant, une classe de
monôme et une classe des polynômes.
Il faudra munir cet ensemble de classes d’un minimum d’opération :
getZero : une référence sur le polynôme null crée suivant le principe du singleton.
sameVariable : teste si le polynôme à la même variable que le monôme argument.
degree : calcule le degré du polynôme.
compute : calcule la valeur du polynôme pour une valeur donnée de la variable.
derivation : trouver un moyen de calculer une approximation raisonnable de la dérivée en
un point d’un polynôme. Cette méthode aura le profil suivant : derivation : Polynome float
> float.
Question 2 :
Utiliser un patron composite pour organiser tout cela. Réfléchir et résoudre le problème suivant : un
monôme seul peutêtre considéré comme le polynôme réduit à ce monôme et c’est également le cas
pour une constante. Par ailleurs si un polynôme à plusieurs monômes ceuxci sont mémorisés en
ordre strictement décroissant des puissances (ceci permet d’avoir une forme normale bien pratique
pour comparer deux polynômes). Ces dernières conditions apparaîtront comme des contraintes dans
un commentaire associée à la classe polynôme. Votre première tâche est donc de réfléchir au
diagramme des classes.
Question 3 :
Implémentez de façon récursive les fonctions suivantes : sameVariable, compute, et derivation
Exercice 5:
L'objectif est d'élaborer un diagramme de classe permettant la représentation des interfaces
graphiques. Une fenêtre est définie par un titre, une largeur et une longueur.
Tout panneau est un conteneur simple qui peut contenir des boutons, labels et d'autres
panneaux. Il dispose pour cela de la méthode ajouter.
Les éléments graphiques ne peuvent être ajoutés directement à une fenêtre. Pour cela, chaque
fenêtre dispose d'un panneau par défaut, auquel les éléments graphiques peuvent être ajoutés. La
méthode getPanneau permet de récupérer le panneau par défaut d'une fenêtre.
Question 1 :
Donner la description UML de chacune des classes suivantes :
2. classe Fenetre
3. classe Bouton
4. classe Label
5. classe Panneau
Question 2 :
Proposer un diagramme des classes pour représenter les interfaces graphiques, en utilisant
un patron composite. Préciser pour chaque association son nom et sa cardinalité.