0% found this document useful (0 votes)
56 views16 pages

Cours4 Gererlaqualite Design Patterns 4slidespp

Uploaded by

rahma kalboussi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
56 views16 pages

Cours4 Gererlaqualite Design Patterns 4slidespp

Uploaded by

rahma kalboussi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 16

/HV'HVLJQ3DWWHUQV

µ3DWWHUQVH[SRVHNQRZOHGJHDERXWVRIWZDUHFRQVWUXFWLRQWKDWKDV
EHHQJDLQHGE\PDQ\H[SHUWVRYHUPDQ\\HDUV$OOZRUNRQ
SDWWHUQVVKRXOGWKHUHIRUHIRFXVRQPDNLQJWKLVSUHFLRXV
/HV'HVLJQ3DWWHUQV UHVRXUFHZLGHO\DYDLODEOH(YHU\VRIWZDUHGHYHORSHUVKRXOGEH
DEOHWRXVHSDWWHUQVHIIHFWLYHO\ZKHQEXLOGLQJVRIWZDUHV\VWHPV
:KHQWKLVLVDFKLHYHGZHZLOOEHDEOHWRFHOHEUDWHWKHKXPDQ
5HGD %HQGUDRX LQWHOOLJHQFHWKDWSDWWHUQVUHIOHFWERWKLQHDFKLQGLYLGXDOSDWWHUQ
UHGDEHQGUDRX^^#``/LSIU DQGLQDOOSDWWHUQVLQWKHLUHQWLUHW\µ
KWWSSDJHVSHUVRV\VWHPHOLSIU5HGD%HQGUDRX

/HFRQWHQXGHFHVXSSRUWGHFRXUVDpWp LQIOXHQFp SDUOHVOHFWXUHV )URP µ3DWWHUQRULHQWHG


3DWWHUQRULHQWHG VRIWZDUHDUFKLWHFWXUHµ
VRIWZDUHDUFKLWHFWXUHµ E\%XVFKPDQQHWDO
FLWpHVj ODILQGHFHVXSSRUW

© Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 1/62 © Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 2/62

2ULJLQHV 2ULJLQHV

‡ &ULVWRSKHU $OH[DQGHUHWDO$3DWWHUQ/DQJXDJH 3URSRVLWLRQG·$OH[DQGHUGDQVOHGRPDLQHGHO·DUFKLWHFWXUH


‡ &ULVWRSKHU $OH[DQGHU7KH7LPHOHVV :D\ RI%XLOGLQJ ‡ 'HVFULSWLRQG
XQSUREOqPHUpFXUUHQWHWGHVDVROXWLRQ

‡ 6\QRQ\PHVFRQQXV)RUPHGHFRQFHSWLRQSDWWHUQPRGqOH
SDWURQGHFRQFHSWLRQPRWLIHWF

© Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 3/62 © Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 4/62
3DWWHUQ'pILQLWLRQ 3RXUTXRLOHV'HVLJQ3DWWHUQV

© (DFK SDWWHUQGHVFULEHV DSUREOHP ZKLFK RFFXUV RYHUDQGRYHUDJDLQ ‡ 5HQGUHGLVSRQLEOHHWH[SOLFLWHGHVSUDWLTXHVGHERQQHFRQFHSWLRQ


LQRXU HQYLURQPHQWDQGWKHQ GHVFULEHV WKHFRUH RIWKHVROXWLRQWR ² &DSWXUHUXQVDYRLUIDLUHOHUHQGUHSpUHQQHUpXWLOLVDEOHHWF
WKDW SUREOHPLQVXFK DZD\ WKDW \RX FDQ XVHWKLV VROXWLRQDPLOOLRQ
WLPHVRYHUZLWKRXW HYHU GRLQJ LW WKHVDPH ZD\ WZLFH ª
‡ 1RPPHUHWUHQGUHH[SOLFLWHXQHVWUXFWXUHGHKDXWQLYHDXTXLQ·HVW
&$OH[DQGHU 7KH7LPHOHVV :D\ RI%XLOGLQJµ
&$OH[DQGHU´
SDVGLUHFWHPHQWH[SULPDEOHVRXVIRUPHGHFRGH

‡ 2XWRXWVLPSOHPHQWXQHVROXWLRQJp
2XWRXWVLPSOHPHQWXQHVROXWLRQJpQpUDOHSRXUXQSUREOq
UDOHSRXUXQSUREOqPH
‡ &UpHUXQYRFDEXODLUHFRPPXQSRXUOHVGpYHORSSHXUVHWOHV
UpFXUUHQWGDQVXQFRQWH[WHGRQQp
FXUUHQWGDQVXQFRQWH[WHGRQQp
FRQFHSWHXUV

© Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 5/62 © Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 6/62

3RXUTXRLSDVODPrPHFKRVHHQ,QIRUPDWLTXH" 'HVLJQ3DWWHUQVHQ,QIRUPDWLTXH*R)
1DLVVDQFH²
1DLVVDQFH² +LVWRULTXHGHV6RIWZDUH'HVLJQ3DWWHUQV ‡ 8QFDWDORJXHGH3DWWHUQV

‡ :DUG&XQQLQJKDPDQG.HQW%HFNµ8VLQJ 3DWWHUQ
‡ /DQJXDJHV IRU2EMHFW2ULHQWHG 3URJUDPPLQJµ
² SDWWHUQODQJXDJH IRU6PDOOWDON *8,V
² IXWXUHH[SHFWDWLRQSDWWHUQVFRXOG FRYHU 22SURJUDPPLQJ
‡ 2236/$ZRUNVKRSVLGHDV GHYHORSHG
‡ 7KH+LOOVLGH *URXS
‡ 6WDUWRI3/R3 FRQIHUHQFHV SDWWHUQUHYLHZV*R)
*R) ERRN
‡ WKHILUVW3/R3 ERRN
‡ $V\VWHPRI3DWWHUQV%XFKPDQQ HWDO

© Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 7/62 © Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 8/62
'RFXPHQWDWLRQG·XQ3DWWHUQVHORQOH*R) 5HPDUTXH
‡ 1RPHWFODVVLILFDWLRQ ,PSRUWDQW
‡ ,QWHQWLRQ
‡ /DUpIpUHQFH'HVLJQ3DWWHUQVSDUOH*R) GpFULWOHVIRUPHVSDU
‡ $XWUHVQRPVFRQQXV
‡ 0RWLYDWLRQVFpQDULR
GHVGLDJUDPPHV207
‡ $SSOLFDELOLWp
‡ 6WUXFWXUH207 ‡ 0DLVO
KpULWDJHHWOHVREMHWVQHVRQWSDVQpFHVVDLUHV
‡ 3DUWLFLSDQWVFODVVHV«
‡ &ROODERUDWLRQV
‡ &RQVpTXHQFHV
‡ ,PSODQWDWLRQ
‡ ([HPSOHGHFRGH
‡ 8VDJHVFRQQXV
‡ 3DWWHUQVDVVRFLpV

© Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 9/62 © Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 10/62

*R) 'HVLJQ3DWWHUQ&ODVVLILFDWLRQ /HV3DWWHUQVVRQWOLpV


PURPOSE

SCOPE CREATIONAL STRUCTURAL BEHAVIOURAL


CLASS Factory Method Adapter (class) Interpreter

Template Method

OBJECT Abstract Factory Adapter (object) Command.

Builder Bridge Iterator

Prototype Composite Mediator

Singleton Decorator Memento

Facade Observer

Flyweight State

Proxy Strategy

Visitor

Chain Of Resp.

© Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 11/62 © Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 12/62
3DWWHUQV&UpDWHXUV2EMHFWLI

‡ $EVWUDLUHOHSURFHVVXVG
LQVWDQFLDWLRQ

‡ 5HQGUHLQGp
5HQGUHLQGpSHQGDQWGHODIDo
SHQGDQWGHODIDoRQGRQWOHVREMHWVVRQWFUpp
RQGRQWOHVREMHWVVRQWFUppV
ppV
/HV'HVLJQ3DWWHUQV&UpDWHXUV FRPSRVp
FRPSRVpVDVVHPEOp
VDVVHPEOpVUHSUp
VUHSUpVHQWp
VHQWpV

‡ (QFDSVXOHUODFRQQDLVVDQFHGHODFODVVHFRQFUq
(QFDSVXOHUODFRQQDLVVDQFHGHODFODVVHFRQFUqWHTXLLQVWDQFLH

‡ &DFKHUFHTXLHVWFUpp
&DFKHUFHTXLHVWFUppTXLFU
ppTXLFUp
TXLFUpHFRPPHQWHWTXDQG

© Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 13/62 © Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 14/62

$EVWUDFW)DFWRU\

‡ %XW
² SHUPHWWUHGHFUpHUGHVIDPLOOHVGHSURGXLWV
² HQPDVTXDQWOHVPpFDQLVPHVGHFKRL[GHVFODVVHVGHPLVHHQ
3DWWHUQV&UpDWHXUV([HPSOHV ±XYUHGHFHVSURGXLWV
‡ ([HPSOH
² FUpDWLRQG·XQHLQWHUIDFHKRPPHPDFKLQHLQGpSHQGDQWHGHOD
$EVWUDFW)DFWRU\ SODWHIRUPH
6LQJOHWRQ ² /HIDPHX[MHX[GX/DE\ULQWKHHQFKDQWp

© Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 15/62 © Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 16/62
([HPSOHLQWHUIDFHKRPPHPDFKLQH,+0 ([HPSOHLQWHUIDFHKRPPHPDFKLQH,+0

‡ 2QYHXWGpYHORSSHUXQHDSSOLFDWLRQJUDSKLTXHPXOWLSODWHIRUPHV 6ROXWLRQVSRVVLEOHV
² LOH[LVWHXQHELEOLRWKqTXHJUDSKLTXHSRXUFKDTXHV\VWqPH
² G·XQHSODWHIRUPHj O·DXWUHOHVFODVVHVG·,+0VRQWGLIIpUHQWHV ‡ 4XDWUHDSSOLFDWLRQVGLIIpUHQWHV
² OHVSODWHIRUPHV VRQW:LQGRZVŒ0DF26Œ/LQX[6RODULVŒ ² TXDWUHVRXUFHVTXLYRQWYLWHGLYHUJHU

‡ 8QVHXOVRXUFH
FenetreMotif FenetrePM ² DYHFGHVVLDORUVVLQRQ
ScrollBPM
² DYHFGHVLIGHI HQGLI
BoutonMotif
BoutonPM ScrollBMotif
‡ (PSORLGH$EVWUDFW)DFWRU\

© Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 17/62 © Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 18/62

([HPSOHLQWHUIDFHKRPPHPDFKLQH,+0
$EVWUDFW)DFWRU\6WUXFWXUH*pQpUDOH
6ROXWLRQ
‡ 'LDJUDPPH6WDWLTXH

© Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 19/62 © Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 20/62
$EVWUDFW)DFWRU\5{OHGHFOLHQW $EVWUDFW)DFWRU\5{OHGH$EVWUDFW3URGXFW

‡ &OLHQW ‡ 0DVTXHUODFODVVHFRQFUqWH
² GpWLHQWXQHUpIpUHQFHVXUXQH$EVWUDFWIDFWRU\
‡ 2IIULUXQHQVHPEOHG·RSpUDWLRQVDSSOLFDEOHVj WRXWHVOHV
² FUpHGHVSURGXLWVSDUDSSHOGHVRSpUDWLRQVGHFHWWHUpIpUHQFH YDULDQWHVG·XQPrPHSURGXLW

² QHFRQQDvWSDVODFODVVHFRQFUqWHGHVSURGXLWV

© Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 21/62 © Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 22/62

$EVWUDFW)DFWRU\5{OHGH$EVWUDFW)DFWRU\ $EVWUDFW)DFWRU\5{OHGH&RQFUHWH 3URGXFW

‡ &RPSRUWHXQHRSpUDWLRQGHFUpDWLRQ ‡ &RQWLHQWODPLVHHQ±XYUHVSpFLILTXHGHVRSpUDWLRQV
² SRXUFKDTXHSURGXLWXQHRSpUDWLRQGHFUpDWLRQUHWRXUQHXQREMHW
SURGXLW ‡ 1RQDFFHVVLEOHDXFOLHQW

‡ /DFODVVHFRQFUqWHGHVSURGXLWVHVWPDVTXpH ‡ 3HXWrWUHDPHQp j MRXHUXQU{OHG·DGDSWDWHXU

© Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 23/62 © Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 24/62
$EVWUDFW)DFWRU\5{OHGH&RQFUHWH )DFWRU\ $EVWUDFW)DFWRU\'LDJUDPPHGHVpTXHQFHJpQpULTXH

‡ &KDUJpHGHPHWWUHHQ±XYUHODFUpDWLRQGHVSURGXLWVFRQFUHWV

‡ 8QHIDEULTXHFRQFUqWHSRXUXQHSODWHIRUPHYDULDQWHYHUVLRQ
GRQQpHQHIDLWTXHGHVSURGXLWVFRQFUHWVGHODPrPHSODWH
IRUPHYDULDQWHYHUVLRQ

© Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 25/62 © Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 26/62

([HPSOHGHO·,+0 $EVWUDFW)DFWRU\4XDQGO·XWLOLVHU"

‡ XQV\VWqPHGRLWrWUHLQGpSHQGDQWGHODIDoRQGRQWVHVSURGXLWV
VRQWFUppVDVVHPEOpVUHSUpVHQWpV

‡ XQV\VWqPHUHSRVHVXUXQSURGXLWG
XQHIDPLOOHGHSURGXLWV

‡ XQHIDPLOOHGHSURGXLWVGRLWrWUHXWLOLVpHHQVHPEOHSRXU
UHQIRUFHUFHWWHFRQWUDLQWH

‡ RQYHXWGpILQLUXQHLQWHUIDFHXQLTXHj XQHIDPLOOHGHSURGXLWV
FRQFUHWV

© Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 27/62 © Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 28/62
6LQJOHWRQ 6LQJOHWRQ6ROXWLRQ6WUXFWXUH

4XDQGO·XWLOLVHU"

‡ 4XDQGLOQ
\DTX
XQHXQLTXHLQVWDQFHG
XQHFODVVHHWTX
HOOH
GRLWrWUHDFFHVVLEOHGHPDQLqUHFRQQXH

‡ /RUVTX·XQHLQVWDQFHXQLTXHSHXWrWUHVRXVFODVVpH HWTXHOHV
FOLHQWVSHXYHQWUpIpUHQFHUFHWWHH[WHQVLRQVDQVDYRLUj PRGLILHU
OHXUFRGH

© Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 29/62 © Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 30/62

6LQJOHWRQ6ROXWLRQ&RGH 3DWWHUQV&UpDWHXUV/HVDXWUHV3DWWHUQV


SXEOLFFODVV6LQJOHWRQ ‡ %XLOGHU )DFWRU\IRUEXLOGLQJFRPSOH[REMHFWVLQFUHPHQWDOO\
^
SULYDWH VWDWLF 6LQJOHWRQVLQJOHWRQ QXOO

/HFRQVWUXFWHXUHQSULYp SRXULQWHUGLUHO·LQVWDQFLDWLRQGHFODVVHGH
‡ )DFWRU\0HWKRG /HWVDFODVVGHIHULQVWDQWLDWLRQWRVXEFODVVHV
O·H[WpULHXU
SULYDWH 6LQJOHWRQ^`
2QSDVVHUDSDUFHWWHPpWKRGHSRXULQVWDQFLHUODFODVVH ‡ 3URWRW\SH )DFWRU\IRUFORQLQJQHZLQVWDQFHVIURPDSURWRW\SH
SXEOLFVWDWLF 6LQJOHWRQJHW,QVWDQFH
^
LIWKH,QVWDQFH QXOO
WKH,QVWDQFH QHZ6LQJOHWRQ
UHWXUQWKH,QVWDQFH
`
`

© Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 31/62 © Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 32/62
3DWWHUQV&RPSRUWHPHQWDX[2EMHFWLIV

'pFULUH
‡ GHVDOJRULWKPHV

/HV'HVLJQ3DWWHUQV&RPSRUWHPHQWDX[ ‡ GHVFRPSRUWHPHQWVHQWUHREMHWV

‡ GHVIRUPHVGHFRPPXQLFDWLRQHQWUHREMHWV

© Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 33/62 © Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 34/62

3DWWHUQ2EVHUYHU

‡ /HSDWURQGHFRQFHSWLRQ2EVHUYHUREVHUYDWHXUSHUPHWGH


FRRUGRQQHUGHX[REMHWVXQVXMHWHWXQREVHUYDWHXURXLHXUV
² OHVXMHWDXQpWDWLQWHUQHGpILQLSDUODYDOHXUGHVHVDWWULEXWVTXL
3DWWHUQV&RPSRUWHPHQWDX[([HPSOH FKDQJH

² O·REVHUYDWHXUGRLWVHV\QFKURQLVHUDYHFOHVFKDQJHPHQWV
2EVHUYHU

© Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 35/62 © Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 36/62
3DWWHUQ2EVHUYHU4XDQGO·XWLOLVHU" 3DWWHUQ2EVHUYHU([HPSOH

‡ 4XDQGOHFKDQJHPHQWG
XQREMHWVHUp
4XDQGOHFKDQJHPHQWG
XQREMHWVHUpSHUFXWHYHUVG
DXWUHV

‡ 8QHDEVWUDFWLRQDSOXVLHXUVDVSHFWVGpSHQGDQWO
XQGHO
DXWUH
(QFDSVXOHUFHVDVSHFWVLQGpSHQGDPPHQWSHUPHWGHOHV
UpXWLOLVHUVpSDUpPHQW

‡ 4XDQGXQREMHWGRLWSUpYHQLUG
DXWUHVREMHWVVDQVSRXUDXWDQW toute cré
création, suppression ou renommage
de fichier dans le dossier doit être ré
répercuté
percutée
OHVFRQQDLWUH

© Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 37/62 © Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 38/62

3DWWHUQ2EVHUYHU$XWUHH[HPSOHG·HPSORL 3DWWHUQ2EVHUYHU'LDJUDPPHVWDWLTXHJpQpULTXH

© Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 39/62 © Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 40/62
3DWWHUQ2EVHUYHU'LDJUDPPHGHVpTXHQFH 3DWWHUQ2EVHUYHU5{OHV
5{OHV
‡ 6XEMHFW
6XEMHFW
² &RPSRUWHXQpWDWLQWHUQH
W\SHQRQVSpFLILp
XQSDWURQGHFRQFHSWLRQHVWLQGpSHQGDQWGHFHJHQUHGHGpWDLOV
² (VWFKDUJp GHJpUHUXQHFROOHFWLRQG·DERQQpVFDSDEOHGHUHFHYRLUGHV
QRWLILFDWLRQV
² (VWFKDUJp G·HQYR\HUXQPHVVDJHDX[DERQQpVORUVTXHVRQpWDWFKDQJH

‡ 2EVHUYHU(VWFDSDEOHGHUpDJLUj
2EVHUYHU ODUpFHSWLRQG·XQPHVVDJHGH
QRWLILFDWLRQYHQDQWG·XQVXMHW

© Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 41/62 © Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 42/62

3DWWHUQ2EVHUYHU'pILQLWLRQGHODVWUXFWXUH 3DWWHUQV&RPSRUWHPHQWDX[/HVDXWUHV3DWWHUQV

‡ 8QHLQWHUIDFH6XEMHFW ‡ &KDLQRI5HVSRQVLELOLW\ 8QFRXSOHUHTXHVWVHQGHUIURPSUHFLVHUHFHLYHURQD


² FRPSRUWHOHVRSpUDWLRQVGHJHVWLRQG·DERQQHPHQW FKDLQ
² QHFRPSRUWHSDVOHVRSpUDWLRQVG·DFFqVj O·pWDW ‡ &RPPDQG 5HTXHVWUHLILHGDVILUVWFODVVREMHFW
‡ ,QWHUSUHWHU /DQJXDJHLQWHUSUHWHUIRUDJUDPPDU
‡ 8QHFODVVH&RQFUHWH6XEMHFW ‡ ,WHUDWRU 6HTXHQWLDODFFHVVWRHOHPHQWVRIDQ\DJJUHJDWH
² FRQWLHQWOHVRSpUDWLRQVG·DFFqVj O·pWDW ‡ 0HGLDWRU 0DQDJHVLQWHUDFWLRQVEHWZHHQREMHFWV
‡ 0HPHQWR &DSWXUHVDQGUHVWRUHVREMHFWVWDWHVVQDSVKRW
‡ 8QHLQWHUIDFH2EVHUYHU ‡ 6WDWH 6WDWHUHLILHGDVILUVWFODVVREMHFW
² FRQWLHQWO·RSpUDWLRQXSGDWH
‡ 6WUDWHJ\ )OH[LEO\FKRRVHDPRQJLQWHUFKDQJHDEOHDOJRULWKPV
‡ 8QHFODVVHFRQFUqWH&RQFUHWH2EVHUYHU ‡ 7HPSODWH0HWKRG 6NHOHWRQDOJRZLWKVWHSVVXSSOLHGLQVXEFODVV
² FHWWHRSpUDWLRQVHUDPLVHHQ±XYUHSDUOHVFODVVHVFRQFUqWHVKpULWDQWGH2EVHUYHU ‡ 9LVLWRU $GGRSHUDWLRQVWRDVHWRIFODVVHVZLWKRXWPRGLI\LQJWKHPHDFKWLPH
² FKDTXHPpWKRGHPHWWDQWHQ±XYUHXSGDWHSRXUUDLQWHUURJHUOHVXMHWSRXU
GpWHUPLQHUFRPPHQWVHV\QFKURQLVHU

© Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 43/62 © Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 44/62
3DWWHUQV6WUXFWXUDX[2EMHFWLIV

‡ 'pFRXSOHULQWHUIDFHVHWLPSODQWDWLRQVGHFODVVHVHWG·REMHWV

‡ 'pFULUHFRPPHQWOHVREMHWVVRQWDVVHPEOpV
/HV'HVLJQ3DWWHUQV6WUXFWXUDX[

© Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 45/62 © Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 46/62

3DWWHUQ&RPSRVLWH

2EMHFWLIV

‡ UHSUpVHQWHUXQHKLpUDUFKLHG
REMHWV
3DWWHUQV6WUXFWXUDX[([HPSOH
‡ LJQRUHUODGLIIpUHQFHHQWUHXQFRPSRVDQWVLPSOHHWXQ
FRPSRVDQWHQFRQWHQDQWG
DXWUHVLQWHUIDFHXQLIRUPH
&RPSRVLWH

© Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 47/62 © Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 48/62
3DWWHUQ&RPSRVLWH6WUXFWXUH 3DWWHUQ&RPSRVLWH([HPSOH

© Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 49/62 © Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 50/62

3DWWHUQ&RPSRVLWH5{OHV 3DWWHUQV6WUXFWXUDX[/HVDXWUHV3DWWHUQV

‡ &RPSRVDQW ‡ $GDSWHU &RQYHUWWKHLQWHUIDFHRIDFODVVLQWRDQRWKHULQWHUIDFH


² GpFODUHOHVRSpUDWLRQVVWUXFWXUHOOHV FOLHQWVH[SHFW
² GpFODUHOHVRSpUDWLRQVGHWUDLWHPHQW ‡ %ULGJH 'HFRXSOHDQDEVWUDFWLRQIURPLWVLPSOHPHQWDWLRQV
‡ &OLHQW ‡ 'HFRUDWRU ([WHQGVDQREMHFWIXQFWLRQDOLWLHVG\QDPLFDOO\
² 'pWLHQWODVWUXFWXUHSHXWODPRGLILHUHWGHPDQGHUGHVWUDLWHPHQWV ‡ )DoDGH 6LPSOHLQWHUIDFHIRUDVXEV\VWHP
‡ )HXLOOH ‡ )O\ZHLJKW (IILFLHQWO\VKDULQJPDQ\)LQH*UDLQHG2EMHFWV
² QHFRQWLHQWMDPDLVGHGHVFHQGDQWV ‡ 3UR[\ 3URYLGHDVXUURJDWHRUSODFHKROGHUIRUDQRWKHUREMHFWWR
‡ &RPSRVLWH FRQWURODFFHVVWRLW
² SHXWFRQWHQLUGHVGHVFHQGDQWV
² PHWHQ±XYUHXQSDUFRXUVVLEHVRLQ

© Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 51/62 © Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 52/62
'HVLJQ3DWWHUQOHSOXVGXU
/HSOXVGXUTXDQGRQYHXWDSSOLTXHUXQ3DWWHUQ

‡ 7URXYHUOHVERQVREMHWV
'HVLJQ3DWWHUQV5pVXPRQV ‡ %LHQFKRLVLUODJUDQXODULWp GHVREMHWV
‡ 6SpFLILHUOHVLQWHUIDFHVGHVREMHWV
‡ 6SpFLILHUO
LPSODQWDWLRQGHVREMHWV
‡ 0LHX[UpXWLOLVHU
² KpULWDJHYVFRPSRVLWLRQ
² GpOpJDWLRQ
‡ &RPSLOHG7LPHYV5XQ7LPH6WUXFWXUHV
‡ &RQFHYRLUSRXUO
pYROXWLRQ

© Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 53/62 © Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 54/62

&HTXHQ·HVWSDVXQ3DWWHUQ ,QFRQYpQLHQWV
‡ 8QHEULTXH ‡ (IIRUWGHV\QWKqVHUHFRQQDvWUHDEVWUDLUH«
² 8QSDWWHUQGpSHQGGHVRQHQYLURQQHPHQW
² &HQ·HVWSDVGXFRGH
‡ $SSUHQWLVVDJHH[SpULHQFH
‡ 8QHUqJOH
² 8QSDWWHUQQHSHXWSDVV ·DSSOLTXHUPpFDQLTXHPHQW
² 1HSDVKpVLWHUj O·DGDSWHUj YRVEHVRLQVQRWLRQGHYDULDQWHV ‡ /HVSDWWHUQV© VHGLVVROYHQW ª HQpWDQWXWLOLVpV
‡ 8QHPpWKRGH
² 1HJXLGHSDVXQHSULVHGHGpFLVLRQXQSDWWHUQHVWODGpFLVLRQ ‡ 1RPEUHX[«
SULVH ² OHVTXHOVVRQWLGHQWLTXHV"
‡ 6DQVSUREOqPHVSRWHQWLHOV ² 'HQLYHDX[GLIIpUHQWV« GHVSDWWHUQVV ·DSSXLHQWVXUG ·DXWUHV
² 3OXVGHFODVVHVSOXVGHGpSHQGDQFHVEHVRLQGHGRFXPHQWHUHWF
² 0DOXWLOLVp LQDSSURSULpSHXWDIIHFWHUOHVSHUIRUPDQFHV

© Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 55/62 © Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 56/62
4XHOTXHV&RQVHLOVSRXUVDYRLUTXHOSDWWHUQ
$YDQWDJHV
XWLOLVHU
‡ 8QYRFDEXODLUHFRPPXQIDFLOLWHODFRPPXQLFDWLRQ ‡ &UpDWLRQG
XQREMHWHQUpIpUHQoDQWVDFODVVHH[SOLFLWHPHQW/LHQ
j XQHLPSODQWDWLRQSDUWLFXOLqUHSRXUpYLWHUXWLOLVH]
‡ &DSLWDOLVDWLRQGHO ·H[SpULHQFH $EVWUDFW)DFWRU\)DFWRU\0HWKRG3URWRW\SH

‡ 8QQLYHDXG ·DEVWUDFWLRQSOXVpOHYp TXLSHUPHWG ·pODERUHUGHV ‡ 'pSHQGDQFHG


XQHRSpUDWLRQVSpFLILTXHSRXUUHQGUHSOXV
FRQVWUXFWLRQVORJLFLHOOHVGHPHLOOHXUHTXDOLWp VRXSOHXWLOLVH] &KDLQ2I5HVSRQVLELOLW\&RPPDQG

‡ 5pGXLUHODFRPSOH[LWp ‡ 'pSHQGDQFHG
XQHFRXFKHPDWpULHOOHRXORJLFLHOOH XWLOLVH]
$EVWUDFW)DFWRU\%ULGJH

‡ *XLGHFDWDORJXHGHVROXWLRQV

© Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 57/62 © Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 58/62

4XHOTXHV&RQVHLOVSRXUVDYRLUTXHOSDWWHUQ 4XHOTXHV&RQVHLOVSRXUVDYRLUTXHOSDWWHUQ
XWLOLVHU XWLOLVHU
‡ 'pSHQGDQFHG
XQHLPSODQWDWLRQSRXUUHQGUHSOXVVRXSOH ‡ (WHQGUHOHVIRQFWLRQQDOLWpVHQVRXVFODVVDQWSHXWrWUHFRXWHX[
XWLOLVH] $EVWUDFW)DFWRU\%ULGJH0HPHQWR3UR[\ WHVWVFRPSUpKHQVLRQGHVVXSHUFODVVHVHWFXWLOLVH]DXVVLOD
GpOpJDWLRQODFRPSRVLWLRQ%ULGJH&KDLQ2I5HVSRQVLELOLW\
‡ 'pSHQGDQFHG
XQDOJRULWKPHSDUWLFXOLHU%XLOGHU,WHUDWRU &RPSRVLWH'HFRUDWRU2EVHUYHU6WUDWHJ\3UR[\
6WUDWHJ\7HPSODWH0HWKRG6WUDWHJ\
‡ ,PSRVVLELOLWp GHPRGLILHUXQHFODVVHDEVHQFHGXVRXUFHWURS
‡ &RXSODJHIRUWUHOkFKHUOHVUHODWLRQVXWLOLVH] $EVWUDFW)DFWRU\ GHUpSHUFXVVLRQVYR\H] $GDSWHU'HFRUDWRU9LVLWRU
%ULGJH&KDLQ2I5HVSRQVLELOLW\&RPPDQG)DFDGH0HGLDWRU
2EVHUYHU

© Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 59/62 © Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 60/62
$XWUHV3DWWHUQV /HFWXUHV
‡ 6RIWZDUH(QJLQHHULQJ
‡ ,OH[LVWHDXVVLG·DXWUHVSDWWHUQV ² ,DQ6RPPHUYLOOH$GGLVRQ:HVOH\HGLWLRQ -XQ,6%1
‡ 7KH0\WKLFDO 0DQ0RQWK
² )UHGHULFN3%URRNV-5$GGLVRQ:HVOH\
‡ &RXUVGH6RIWZDUH(QJLQHHULQJGX3URI%HUWUDQG0H\HUj FHWWH#
² $UFKLWHFWXUH ² KWWSVHHWK]FKWHDFKLQJVVOHFWXUHKWPO
‡ &RXUVG·$QWRLQH%HXJQDUG j FHWWH#
² KWWSSXEOLFHQVWEUHWDJQHIUaEHXJQDUG

² $QDO\VH ‡ 80/'LVWLOOHG UGpGLWLRQDEULHI JXLGHWRWKHVWDQGDUGREMHFW PRGHOLQJODQJXDJH
² 0DUWLQ)RZOHU$GGLVRQ:HVOH\2EMHFW7HFKQRORJ\ 6HULHV,6%1
‡ 80/SRXUOHVGpYHORSSHXUVFRXUVDYHFH[HUFLFHVHWFRUULJpV
² ;DYLHU%ODQF,VDEHOOH0RXQLHUHW&pGULF%HVVH(GLWLRQ(\UROOHV,6%1;
‡ 80/SDUODSUDWLTXHpWXGHVGHFDVHWH[HUFLFHVFRUULJpV
² 3DVFDO5RTXHVqPH pGLWLRQ(GLWLRQ(\UROOHV
‡ &RXUVWUqVLQWpUHVVDQWGX3URI-HDQ0DUF-p]pTXHO j FHWWH#
² KWWSZZZLULVDIUSULYHMH]HTXHOHQVHLJQHPHQW3RO\80/SRO\SGI
‡ /DSDJHGHO·20*GpGLpHj 80/KWWSZZZXPORUJ

‡ 'HVLJQSDWWHUQV&DWDORJXHGHVPRGqOHVGHFRQFHSWLRQUpXWLOLVDEOHV
² 5LFKDUG+HOP $XWHXU5DOSK-RKQVRQ $XWHXU-RKQ9OLVVLGHV $XWHXU(ULF*DPPD $XWHXU9XLEHUW
LQIRUPDWLTXHMXLOOHW,6%1

© Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 61/62 © Reda Bendraou LI386-S1 Génie Logiciel – UPMC Cours 4: Les Design Pattern 62/62

You might also like