République Algérienne e Démocratique
e et Populaire الـشـعـبية
ة طـيـة
رية الـديــمقـراط
ھـوريـة الـجـزائـرالـجـمـھ
Ministè
ère de l’Enseign
nement Supérieu
ur et de la Reche
erche Scientifiq
que وزارة الــتـعـلـيـم الـعــاللـي و الــبحـث االـعــلمـي
Faculté
é des Sciences E
Exactes علوم الدقيقة كلية الع
Départtement d’Informmatique إلعالم اآللي قسم اإل
Concceptio
on dee logiciels
T
TP 06
6
Objectif
O :
1. Introd
duire la notion
n de Design Pa
attern : Patronn de conception.
2. Introd
duire la notion
n du patron de
e conception SStratégi : STRA
ATEGY design pattern.
”Design Prin
nciple : Identtify the aspe
ect of your a pplication th
hat vary and
d separate thhem from wh
hat stays the
e
same”
Exercice
E SimU
UDuck 2:
Cet
C exemple estt cité dans le livrel « Design Pattern
P » chez O’Reilly - Head First : il a étté repris dans lle cours Conception Logiciel du
d
département
d d’iinformatique dee l’UQAM, Cana ada, durant la ssession 2020.
Ill a été demandéé de réaliser un
n jeu de simulation de canard : SimUDuck app p.
Le
L présent TP P est la suitee des TP05 ett TP04
Ill s’avère quee le concepteeur bien qu’aayant cru bieen faire se so
oit tromper dans les précéédentes conceptions.
C’est
C qui est en fait tout à fait norm mal : L’activvité de conceeption est une
u activité d’essai-erre eur. Plus nou
us
faaisons d’erreeurs plus nou us nous améliorons.
A.
A Qu’est cee qui varie daans cette ap
pplication ?
B.
B Dans le ddiagramme 1 suivant, où ù se situe l’errreur ?
C.
C L’un dess principes de la con nception esst « favor composition
c n over
inheritan
nce ». Argummentez.
D.
D Commen nt peut-on trransformer la relation dd’héritage du
d diagramm
me2 ci-
après en relation de composition
n? Diagram
mme 1
E.
E Expliquezz le Diagram
mme3 ci-aprè
ès.
Diagra
amme 2
Diagramme 3
F. mme4 global suivant :
F Expliquezz le Diagram
République Algérienne e Démocratique
e et Populaire الـشـعـبية
ة طـيـة
رية الـديــمقـراط
ھـوريـة الـجـزائـرالـجـمـھ
Ministè
ère de l’Enseign
nement Supérieu
ur et de la Reche
erche Scientifiq
que وزارة الــتـعـلـيـم الـعــاللـي و الــبحـث االـعــلمـي
Faculté
é des Sciences E
Exactes علوم الدقيقة كلية الع
Départtement d’Informmatique إلعالم اآللي قسم اإل
Diagramme 4
G.
G Il vous eest demand dé d’implémmenter souss Java puis sous C++ le diagramm
me5 présen
nté que vou
us
sauvegarrderez dans un
u projet no
ommé SimUD Duck appV3..0.
Diagramme 5
Ill a été demaandé au concepteur d’in ntégrer le faiit qu’un canard blessé qui pouvait vvoler avant sa
s blessure ne
n
puisse
p plus vo
oler. Le conccepteur a donc proposé l e diagramme 6 suivant :
H.
H Expliquerr le diagramme 6.
République Algérienne e Démocratique
e et Populaire الـشـعـبية
ة طـيـة
رية الـديــمقـراط
ھـوريـة الـجـزائـرالـجـمـھ
Ministè
ère de l’Enseign
nement Supérieu
ur et de la Reche
erche Scientifiq
que وزارة الــتـعـلـيـم الـعــاللـي و الــبحـث االـعــلمـي
Faculté
é des Sciences E
Exactes علوم الدقيقة كلية الع
Départtement d’Informmatique إلعالم اآللي قسم اإل
I.. Est-ce quue cette im mplémentatiion de channgements
dynamique aurait pu u être intégrrée aussi sim
mplement
dans les aapplicationss SimUDuck appV1.0
a et SSimUDuck
appV2.0..
Remarque
R :
Chaque application doit être sauvegardée
s e dans un
projet diffférent soit au
a total Deu
ux dossiers.
Diaggramme 6
Explication
E :
Ce
C qui a été réalisé en faait, est l’app
plication d’u n Patron de Conception appelé Straatégie : STRA
ATEGY Desig
gn
Pattern.
P
Avec
A l’applicaation de Dessign Pattern le concepteuur est capable de prendrre en chargee tous les cha
angements de
d
comporteme
c nt qui seront exigés dans le comporttement de so on Canard.
Diagramme
D d
du patron de
e conception
n Stratégie
Diagramme 7
Application
A d
du Patron de
e conception
n dans le cas de SimUDucck
Diagramme 8
J. En vous basant surr le diagram mme8, expliiquez le diggramme 5 sur s la base du STRATE
EGY pattern
n:
ner le Contexxt, les Opéra
détermin ations, les Sttratégies et les Algorithm
mes.
K Devinez dans le diaggramme 05 ce que sonnt les clients. ( Ce qui est appelé client dans le patron de
K. d
on Stratégie
conceptio e).
République Algérienne e Démocratique
e et Populaire الـشـعـبية
ة طـيـة
رية الـديــمقـراط
ھـوريـة الـجـزائـرالـجـمـھ
Ministè
ère de l’Enseign
nement Supérieu
ur et de la Reche
erche Scientifiq
que وزارة الــتـعـلـيـم الـعــاللـي و الــبحـث االـعــلمـي
Faculté
é des Sciences E
Exactes علوم الدقيقة كلية الع
Départtement d’Informmatique إلعالم اآللي قسم اإل
Définition
D :
Le
L modèle d de stratégiee définit unne famille dd’algorithme es, encapsule chacun dd’entre euxx et les ren nd
in
nterchangea
ables. La stra
atégie perme
et à l’algoritthme de variier indépend
damment dees clients qui l’utilisent.
Le patron
n « Strategy » cherche principaleme
p e ses compoortements/algorithmes en
nt à séparerr un objet de e
encapsulant ces dern
niers dans des classes à ppart.
Pour ce faire, on doit
d alors dé
éfinir une ffamille de comporteme
c nts ou d’al gorithmes encapsulés
e e
et
interchan
ngeables.
Le
L patron « SStrategy » esst utilisé lorssque:
Un problèème possèdee plusieurs algorithme
a poour le résoud
dre.
o SSurtout si les algorithmess possèdent ddifférents effficacités dan
ns différentees situations.
Un objet peut avoir plusieurs
p com
mportementss différents.
o AAussi appliccable lorsque différenntes classe
es sont se
eulement ddifférentes d’après leu
ur
ccomportement.
Des donn
nées que l’uttilisateur ne devrait
d pas cconnaître se retrouve dans un algoritthme.