designpatternsfrench 150724144651 lva1 app6892

Upload: med-khoual

Post on 08-Jul-2018

215 views

Category:

Documents


0 download

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