Patrons de Conception - Série N°6

École Nationale des Sciences de l'Informatique (ENSI)
1/2
100%
Rendu du PDF...
Page 1 sur 2Lecteur de document UniversityLib

Patrons de Conception - Série N°6

École Nationale des Sciences de l'Informatique (ENSI) · Computer Science · notes

Voir tous les documents en génie logiciel

UNIVERSITE DE LA MANOUBA

----- -----

ECOLE NATIONALE DES SCIENCES DE

L'INFORMATIQUE

Mati re : ACOO

A.U. : 2017-2018

Niveau : I.I. 2

S rie N 6: Patrons de conception

Exercice1

Toutes les fabriques de chocolat modernes ont des bouilleurs assist s par ordinateur. La t che du

bouilleur consiste contenir un m lange de chocolat et de lait, le porter bullition puis le

transmettre la phase suivante o il est transform en plaquettes de chocolat. Voici la classe

Publicité

contr leur du bouilleur industriel de Bonchoco, SA. Si vous tudiez le code; vous constatez quils

ont essay tr s soigneusement d viter les catastrophes, par exemple de vider deux mille litres de

m lange qui na pas bouilli, de remplir un bouilleur d j plein ou de faire bouillir un bouilleur vide.

Bonchoco a fait un travail honorable en essayant d viter les probl mes ; Pourtant, vous soup onnez

probablement quen l chant deux instances de BouilleurChocolat dans la nature, on sexpose des

catastrophes.

Question : Aidez Bonchoco am liorer sa classe BouilleurChocolat en la transformant en

singleton.

Exercice2

Une expression arithm tique peut se repr senter de mani re arborescente. Par exemple, l'expression

(2+3)4 peut se repr senter comme le r sultat de l'op ration appliqu e 4 et au r sultat d'une

seconde op ration + appliqu e 2 et 3. 4 et +(2,3) sont dits op randes de l'expression qui a *

Publicité

comme op rateur. Selon ce principe, une autre notation pour cette expression arithm tique est

*(+(2,3) , 4), aussi appel e notation polonaise et notamment utilis e sur les calculatrice HP.

Cette notation peut se repr senter de avec un arbre comme suit. Il est noter quil devient ainsi

1

possible de se passer tout fait de parenth ses : il n'y a aucune ambigu t lorsqu'on utilise la

notation *+234.

Il y a deux types d'expressions : les expressions binaires comme +(2,3) et les expressions unaires

qui utilisent des op rations ne prenant qu'un seul argument, comme par exemple l'op rateur de

changement de signe dans l'expression. Ces deux types d'expression sont caract ris es par un

op rateur et disposent d'une op ration calculerValeur(). Le terme est un concept plus g n ral

qu'une expression : il peut tre soit une valeur constante (1,2, 3 ou 4) soit une expression comme

+(2,3). Dans tous les cas, un terme doit disposer d'une op ration calculerValeur(). Un autre type de

Publicité

terme peut tre une variable qui, en plus d'une valeur comme pour les constantes, dispose d'un nom.

Question : Utilisez le pattern composite pour produire un diagramme de classes ad quat pour la

repr sentation des expressions arithm tiques.

Exercice3

Un calculateur permet deffectuer des calculs. Etant donn que nimporte qui peut demander un

calculateur deffectuer des calculs, la classe Synchronisateur a t construite pour r guler les

calculs.

Les personnes qui souhaitent demander la r alisation dun calcul doivent passer par le

synchronisateur (via lop ration calculer()). Celui-ci distribue les calculs aux diff rents calculateurs

avec lesquels il est li (cest lui qui appelle lop ration calculer () sur les calculateurs). Un

calculateur conna t le synchronisateur auquel il est reli gr ce la propri t sync de type

Synchronisateur. Sa valeur doit tre d termin e lors de la cr ation des objets de type Calculateur.

Publicité

Nous souhaitons maintenant d finir une classe repr sentant une barre de progression. Cette barre

affiche l tat davancement du calcul (en pourcentage).

Une barre de progression re oit des messages dun calculateur qui linforme que l tat

davancement du calcul a chang . D finissez cette classe.

Tout comme le synchronisateur, une barre de progression doit se d clarer aupr s dun calculateur.

De plus, le calculateur doit offrir une op ration permettant de conna tre le pourcentage

davancement du calcul.

Question : Appliquez le patron de conception Observer pour am liorer la conception de ces classes.

2