designpatternsfrench 150724144651 lva1 app6892
TRANSCRIPT
-
8/19/2019 Designpatternsfrench 150724144651 Lva1 App6892
1/42
Design Patterns
Par: Sari Meriem
1
UNIVERSITE de MOHAMED CHERIF MESAADIASOUK-AHRAS
D!artement de Mat" # In$%rmati&'e
E(!%s s'r:
-
8/19/2019 Designpatternsfrench 150724144651 Lva1 App6892
2/42
M%ti)ati%n
*Meriem Sari +, O./et *
*eme AM +,
C%n0e)%ir 'n %gi0ie en OO est di20e3 C%n0e)%ir 'n %gi0ie r'tiisa.e en OO est !'sdi20ie3
Di20ie de tr%')er es %./ets et es rassem.erse%n e .%n ni)ea' de gran'arit3 Di20ie de d4nir es 0asses5 es inter$a0es et esreati%ns d6"ritage entre e'(3
Di20ie d6ta.ir es reati%ns entre es 0asses3
,a 0%n0e!ti%n d%it 7tre s!0i4&'e 'n !r%.emmais s'2sament gnrae !%'r rs%'dre des $'t're !r%.8mes3
-
8/19/2019 Designpatternsfrench 150724144651 Lva1 App6892
3/42
M%ti)ati%n
9
,es 0%n0e!te'rs E(!8rts r'tiise des s%'ti%ns(istantes !%'r rs%'dre des n%')ea'( !r%.8mes3
a 0a'se a R%00'ran0e des !atr%ns de 0asses etdes di;rent %./ets en 0%mm'ni0ati%n dans !'sie'rss
-
8/19/2019 Designpatternsfrench 150724144651 Lva1 App6892
4/42
Hist%ri&'e
>
Dans 0ette !rsentati%n %n )a 0%nsidr es !atr%ns
de 0%n0e!ti%n !'.i dans e i)re: ?Design Patterns -Elements of Reusable Object-Oriented Software@!ar e +OF3
Meriem Sari +, O./et **eme AM +,
-
8/19/2019 Designpatternsfrench 150724144651 Lva1 App6892
5/42
Hist%ri&'e
Eri0" +amma Ra!" B%"ns%n B%"n Vissides Ri0"ard Hem
Meriem Sari +, O./et **eme AM +,
-
8/19/2019 Designpatternsfrench 150724144651 Lva1 App6892
6/42
Pan
Meriem Sari +, O./et *
*eme AM +,
D4niti%n3
Cassi40ati%n3
State Design Pattern3
Strateg< Design Pattern3
Visit%r Design Pattern3
-
8/19/2019 Designpatternsfrench 150724144651 Lva1 App6892
7/42
D4niti%n
Se%n C"rist%!"er Ae(ander:
Un !atr%ns d0rit 'n !r%.8me &'i se !r%d'it!'sie'rs $%is3
I d0rit e n%
-
8/19/2019 Designpatternsfrench 150724144651 Lva1 App6892
8/42
D4niti%n
C"a&'e !atr%n a &'atre ments .asi&'es:
,e n%m d' !atr%n: i d0rit e !r%.8me d%nt 0e !atr%nrs%'t !%'r $a0iiter a d%0'mentati%n et a 0%mm'ni0ati%nentre es 0%n0e!te'rs et es de)e%!!e'rs3
,e !r%.8me: d0rit &'and %n d%it a!!i&'er 0e !atr%n3
,a s%'ti%n: d0rit 6arrangement gnrae des ments0asses et %./ets G &'i rs%'t e !r%.8me3
,es 0%ns&'en0es: d0rit es rs'tats d6a!!i&'er 0e!atr%n d%nt e .'t est d6)a'er ses aternati)es 5 es 0%tset es .ene40es de s%n a!!i0ati%n3
Meriem Sari +, O./et **eme AM +,
-
8/19/2019 Designpatternsfrench 150724144651 Lva1 App6892
9/42
Cassi40ati%n
,es !atr%ns de 0%n0e!ti%n se di;8rent dans e'rs
gran'arit et ni)ea' d6a.stra0ti%n3
Is s%nt 0assi4 se%n de'( 0rit8res:
Par .'t i3e3 &'e $ait e !atr%n3
Patr%ns de Crati%n: 0%n0erne e !r%0esse de 0rati%n des %./ets3 Patr%ns de Str'0t're: mani!'e a 0%m!%siti%n des
0asses %' %./ets3 Patr%ns de C%m!%rtement: s6%00'!e de a $a%n0%mment es 0asses et es %./ets s6interagissent 3
Par s0%!e i3e3 est3 0e &'e 0e !atr%n s6a!!i&'e s'rdes 0asses %' des %./ets3Meriem Sari +, O./et **eme AM +,
-
8/19/2019 Designpatternsfrench 150724144651 Lva1 App6892
10/42
Cassi40ati%n
1JMeriem Sari +, O./et *
*eme AM +,
-
8/19/2019 Designpatternsfrench 150724144651 Lva1 App6892
11/42
Design Patterns
11
Dans 0ette !rsentati%n %n )a a..%rd tr%is !atr%ns
de 0%m!%rtement &'i s%nt:
State design !attern3
Strateg< design !attern3
Visit%r design !attern3
Meriem Sari +, O./et **eme AM +,
-
8/19/2019 Designpatternsfrench 150724144651 Lva1 App6892
12/42
State Pattern
1*
D4niti%n3
O./e0ti$3
Str'0t're3
C%ns&'en0es3
E(em!e3
Meriem Sari +, O./et **eme AM +,
-
8/19/2019 Designpatternsfrench 150724144651 Lva1 App6892
13/42
D4niti%n
19
C%nn' 0%mme : O./e0ts $%r States3
,e 0%m!%rtement d6'n %./et d!end de s%n tat3
Permet 'n %./et de 0"anger s%n 0%m!%rtement&'and s%n tat interne se 0"ange3
Ce 0"angement se $ait %rs de 6(0'ti%n3
En0a!s'e es di;rent 0%m!%rtements d6'n meme
%./et .as s'r ses tats3
Meriem Sari +, O./et **eme AM +,
-
8/19/2019 Designpatternsfrench 150724144651 Lva1 App6892
14/42
O./e0ti$
1>
Minimise 6'tiisati%n des .ran0"ements 0%nditi%nes &'i rs'te e 0"angement d6tat d6'n %./et3
Met 0"a&'e .ran0"e d6'ne instr'0ti%n 0%nditi%needans 'ne 0asse s!are 3 I n%'s !ermet de traiter es tats d6'n %./et 0%mmedes %./ets ind!endents des a'tres %./ets3
Meriem Sari +, O./et **eme AM +,
-
8/19/2019 Designpatternsfrench 150724144651 Lva1 App6892
15/42
Str'0t're 1G
1Meriem Sari +, O./et *
*eme AM +,
-
8/19/2019 Designpatternsfrench 150724144651 Lva1 App6892
16/42
Str'0t're *G
1
C%nte(t: d4nit 6inter$a0e d6intrt !%'r e 0ient 3
State: d4nit 6inter$a0e !%'r en0a!s'er e0%m!%rtement ass%0i 'n tat !arti0'i de 6%./etC%nte(t3
C%n0rete State S'.0ass: 0"a&'e s%'s 0asseim!emente 'n 0%m!%rtement ass%0i 'n tat de 6%./et
C%nte(t3
Meriem Sari +, O./et **eme AM +,
-
8/19/2019 Designpatternsfrench 150724144651 Lva1 App6892
17/42
C%ns&'en0es
1
,e State !attern met t%'t es 0%m!%rtementsass%0is 'n tat !arti0'i dans 'n se' %./et3
'and 'n %./et de4nit s%n tat 0%'rrant de $a0%ninterne5 s%n transiti%n d6tat a a'0'ne re!rsentati%n(!i0ite3
,es %./ets State !e')ent etre !artag entre des
%./ets C%nte(ts F
-
8/19/2019 Designpatternsfrench 150724144651 Lva1 App6892
18/42
E(em!e 1G
1Meriem Sari +, O./et *
*eme AM +,
-
8/19/2019 Designpatternsfrench 150724144651 Lva1 App6892
19/42
E(em!e Im!mentati%nG
1Meriem Sari +, O./et *
*eme AM +,
-
8/19/2019 Designpatternsfrench 150724144651 Lva1 App6892
20/42
E(em!e Im!mentati%nG
*JMeriem Sari +, O./et *
*eme AM +,
-
8/19/2019 Designpatternsfrench 150724144651 Lva1 App6892
21/42
Strateg< Pattern
*1Meriem Sari +, O./et *
*eme AM +,
D4niti%n3
O./e0ti$3
Str'0t're3
C%ns&'en0es3
E(em!e3
-
8/19/2019 Designpatternsfrench 150724144651 Lva1 App6892
22/42
D4niti%n
**Meriem Sari +, O./et *
*eme AM +,
C%nn' 0%mme: P%i0< !attern3
Permet a' 0%m!%rtement d'n ag%rit"me d7tre0"%isi a' tem!s de(0'ti%n3
C"ange 6ag%rit"me en (0'ti%n de 6%./etC%nte(te3
,aisse ag%rit"me 0"ange ind!endamment des
0ients &'i (0'te3
De4nit 'ne $amie d6ag%rit"mes et en0a!s'e0"a&'6'ne3
Permet a' ag%rit"mes d67tre inter0"angea.e entre
-
8/19/2019 Designpatternsfrench 150724144651 Lva1 App6892
23/42
O./e0ti$
*9Meriem Sari +, O./et *
*eme AM +,
C%n4g'rer .ea'0%'! de 0asses reati)es &'idi;8rent se'ement dans e'r 0%m!%rtement3
Tr8s 'tie dans es ag%rit"mes .as s'r a )aidati%ndes d%nnes3 T
-
8/19/2019 Designpatternsfrench 150724144651 Lva1 App6892
24/42
Str'0t're 1G
*>Meriem Sari +, O./et *
*eme AM +,
S *G
-
8/19/2019 Designpatternsfrench 150724144651 Lva1 App6892
25/42
Str'0t're *G
*Meriem Sari +, O./et *
*eme AM +,
C%nte(t : maintient 'ne r$ren0e s'r 6%./et Strateg< etse mani!'e 6aide d6'n %./et C%n0reteStrateg
-
8/19/2019 Designpatternsfrench 150724144651 Lva1 App6892
26/42
C%ns&'en0es
*Meriem Sari +, O./et *
*eme AM +,
,6en0a!s'ati%n de t%'t es 0%m!%rtements dans'ne se'e 0asse rendre di20ie d6)iter es.ran0"ements 0%nditi%nes3
Eimine 6'tiisati%n des .ran0"ements 0%nditi%nes3
F%'rnit des di;erentes im!mentati%ns !%'r 'nmeme 0%m!%rtement3
A'gmente e n%m.re des %./ets dans 'nea!!i0ati%n3
E 1G
-
8/19/2019 Designpatternsfrench 150724144651 Lva1 App6892
27/42
E(em!e 1G
*Meriem Sari +, O./et *
*eme AM +,
Ca0'at%r
E I t ti G
-
8/19/2019 Designpatternsfrench 150724144651 Lva1 App6892
28/42
E(em!e Im!mentati%nG
*Meriem Sari +, O./et *
*eme AM +,
E I t ti G
-
8/19/2019 Designpatternsfrench 150724144651 Lva1 App6892
29/42
E(em!e Im!mentati%nG
*Meriem Sari +, O./et *
*eme AM +,
Vi it P tt
-
8/19/2019 Designpatternsfrench 150724144651 Lva1 App6892
30/42
Visit%r Pattern
9JMeriem Sari +, O./et *
*eme AM +,
D4niti%n3
O./e0ti$3
Str'0t're3
C%ns&'en0es3
E(em!e3
D4 iti
-
8/19/2019 Designpatternsfrench 150724144651 Lva1 App6892
31/42
D4niti%n
91Meriem Sari +, O./et *
*eme AM +,
Re!rsente 'ne %!rati%n $aite s'r es ments de
str'0t're de 6%./e0t3
Permet 6a/%'t des n%')ees %!rati%ns sans 0"angera str'0t're de 6%./et3
S!are 6ag%rit"me de a str'0t're de 6%./et s're&'e i s6(0'te3
Permet 6a/%'t des n%')ees $%n0ti%ns )irt'ees dans
'ne 0asse sans a m%di4er3
I res!0te e !rin0i!e %')ert$erm 3
O./ ti$
-
8/19/2019 Designpatternsfrench 150724144651 Lva1 App6892
32/42
O./e0ti$
9*Meriem Sari +, O./et *
*eme AM +,
C%nsidrer 'n 0%m!iate'r &'i re!rsente es
!r%grammes s%'s $%rme d6'n ar.re s
-
8/19/2019 Designpatternsfrench 150724144651 Lva1 App6892
33/42
Str'0t're 1G
99Meriem Sari +, O./et *
*eme AM +,
St t *G
-
8/19/2019 Designpatternsfrench 150724144651 Lva1 App6892
34/42
Str'0t're *G
9>Meriem Sari +, O./et *
*eme AM +,
Visit%r: d0are 'ne %!rati%n de Visit !%'r 0"a&'e 0assede C%n0reteEement 3 e n%m et a signat're de 6%!rati%n identi4s a 0asse &'ien)%ie a demande de Visit a' )isit%r3
C%n0reteVisit%r: im!emente 0"a&'e %!rati%n d0ar!ar Visit%r3
Eement: de4nit 'ne %!rati%n A00e!t &'i !rend en
arg'ment 'n )isit%r3
C%n0reteEement: im!emente 'ne %!rati%n A00e!t &'i!rend en arg'ment 'n )isit%r3
St t 9G
-
8/19/2019 Designpatternsfrench 150724144651 Lva1 App6892
35/42
Str'0t're 9G
9Meriem Sari +, O./et *
*eme AM +,
C%nsidrer de'( %./ets: 'n ? ment et 'n)isit%r3
'n ment a 'ne mt"%de a00e!tG &'i !rend e)isit%r 0%mme 'n arg'ment3
,a mt"%de a00e!tG a!!8e a mt"%de )isitG de)isit%r3
,6ment 'i meme se !asse en arg'ment a
mt"%de )isitG 3
E 1G
-
8/19/2019 Designpatternsfrench 150724144651 Lva1 App6892
36/42
E(em!e 1G
9Meriem Sari +, O./et *
*eme AM +,
E em!e Im!mentati%nG
-
8/19/2019 Designpatternsfrench 150724144651 Lva1 App6892
37/42
E(em!e Im!mentati%nG
9Meriem Sari +, O./et *
*eme AM +,
E(em!e Im!mentati%nG
-
8/19/2019 Designpatternsfrench 150724144651 Lva1 App6892
38/42
E(em!e Im!mentati%nG
9Meriem Sari +, O./et *
*eme AM +,
E(em!e Im!mentati%nG
-
8/19/2019 Designpatternsfrench 150724144651 Lva1 App6892
39/42
E(em!e Im!mentati%nG
9Meriem Sari +, O./et *
*eme AM +,
E(em!e Im!mentati%nG
-
8/19/2019 Designpatternsfrench 150724144651 Lva1 App6892
40/42
E(em!e Im!mentati%nG
>JMeriem Sari +, O./et *
*eme AM +,
C%n0'si%n
-
8/19/2019 Designpatternsfrench 150724144651 Lva1 App6892
41/42
C%n0'si%n
>1
Si n%'s nt'di%ns !as es !atr%ns de 0%n0e!ti%n a'ni)ea' de a !r%grammati%n OO5 n%'s ne !%'rr%ns !as
ami%rer es %gi0ie5 et i sera !'s di20ie de es0%n0e)%ir et raiser3
Meriem Sari +, O./et **eme AM +,
A0n%Ledgment
-
8/19/2019 Designpatternsfrench 150724144651 Lva1 App6892
42/42
A0n%Ledgment
Meri P%'r V%tre Attenti%n