SlideShare une entreprise Scribd logo
Design Patterns
Par: Sari Meriem
1
UNIVERSITE de MOHAMED CHERIF MESAADIA
SOUK-AHRAS
Département de Math & Informatique
Exposé sur:
Motivation
2Meriem Sari GL à Objet 2 2eme AM GL
 Concevoir un logiciel en OO est difficle.
 Concevoir un logiciel réutilisable en OO est plus difficile.
 Difficile de trouver les objets et les rassembler selon le bon
niveau de granularité.
 Difficile de définir les classes, les interfaces et les relations
d’héritage entre eux.
 Difficile d’établir les relations entre les classes.
 La conception doit être spécifique à un problem mais suffisament
générale pour résoudre des future problèmes.
Motivation
3
 Les concepteurs Expèrts réutilise des solutions éxistantes pour
résoudre des nouveaux problèmes.
 ça cause la Réoccurance des patrons de classes et des différent
objets en communication dans plusieurs systèmes.
 L’application de ces patrons nous produise un logiciel fléxible,
élégant et finalement réutilisable.
Meriem Sari GL à Objet 2 2eme AM GL
Historique
4
 Dans cette présentation on va considéré les patrons de conception
publié dans le livre: «Design Patterns - Elements of Reusable
Object-Oriented Software» par le GOF.
Meriem Sari GL à Objet 2 2eme AM GL
Historique
5
Erich Gamma Ralph Johnson John Vlissides Richard Helm
Meriem Sari GL à Objet 2 2eme AM GL
Plan
6Meriem Sari GL à Objet 2 2eme AM GL
 Définition.
 Classification.
 State Design Pattern.
 Strategy Design Pattern.
 Visitor Design Pattern.
Définition
7
Selon Christopher Alexander:
 Un patrons décrit un problème qui se produit plusieurs fois.
 Il décrit le noyau de la solution à ce problème.
 Cette solution peut être utilisé un million de fois, sans jamais la
faire de la même manière deux fois.
Meriem Sari GL à Objet 2 2eme AM GL
Définition
8
 Chaque patron a quatre éléments basiques:
 Le nom du patron: il décrit le problème dont ce patron résout pour
faciliter la documentation et la communication entre les concepteurs et les
developpeurs.
 Le problème: décrit quand on doit appliquer ce patron.
 La solution: décrit l’arrangement générale des éléments (classes et
objets ) qui résout le problème.
 Les conséquences: décrit les résultats d’appliquer ce patron dont le
but est d’évaluer ses alternatives , les coûts et les benefices de son
application.
Meriem Sari GL à Objet 2 2eme AM GL
Classification
9
 Les patrons de conception se diffèrent dans leurs granularité et
niveau d’abstraction.
 Ils sont classifié selon deux critères:
 Par but i.e. que fait le patron.
 Patrons de Création: concerne le processe de création des objets.
 Patrons de Structure: manipule la composition des classes ou objets.
 Patrons de Comportement: s’occupe de la façon comment les classes
et les objets s’interagissent .
 Par scope i.e. est. ce que ce patron s’applique sur des classes ou
des objets.
Meriem Sari GL à Objet 2 2eme AM GL
Classification
10Meriem Sari GL à Objet 2 2eme AM GL
Design Patterns
11
 Dans cette présentation on va abbordé trois patrons de
comportement qui sont:
 State design pattern.
 Strategy design pattern.
 Visitor design pattern.
Meriem Sari GL à Objet 2 2eme AM GL
State Pattern
12
 Définition.
 Objectif.
 Structure.
 Conséquences.
 Exemple.
Meriem Sari GL à Objet 2 2eme AM GL
Définition
13
 Connu comme : Objects for States.
 Le comportement d’un objet dépend de son état.
 Permet à un objet de changer son comportement quand son état
interne se change.
 Ce changement se fait lors de l’éxécution.
 Encapsule les différent comportements d’un meme objet basé sur
ses états.
Meriem Sari GL à Objet 2 2eme AM GL
Objectif
14
 Minimise l’utilisation des branchements conditionels qui résulte le
changement d’état d’un objet.
 Met chaque branche d’une instruction conditionelle dans une
classe séparée .
 Il nous permet de traiter les états d’un objet comme des objets
indépendents des autres objets.
Meriem Sari GL à Objet 2 2eme AM GL
Structure (1)
15Meriem Sari GL à Objet 2 2eme AM GL
Structure (2)
16
 Context: définit l’interface d’intérét pour le client .
 State: définit l’interface pour encapsuler le comportement associé à un
état particulié de l’objet Context.
 Concrete State Subclass: chaque sous classe implemente un
comportement associé à un état de l’objet Context.
Meriem Sari GL à Objet 2 2eme AM GL
Conséquences
17
 Le State pattern met tout les comportements associés à un état
particulié dans un seul objet.
 Quand un objet definit son état courrant de façcon interne, son
transition d’état a aucune représentation éxplicite.
 Les objets State peuvent etre partagé entre des objets Contexts
(Flyweight).
Meriem Sari GL à Objet 2 2eme AM GL
Exemple (1)
18Meriem Sari GL à Objet 2 2eme AM GL
Exemple (Implémentation)
19Meriem Sari GL à Objet 2 2eme AM GL
Exemple (Implémentation)
20Meriem Sari GL à Objet 2 2eme AM GL
Strategy Pattern
21Meriem Sari GL à Objet 2 2eme AM GL
 Définition.
 Objectif.
 Structure.
 Conséquences.
 Exemple.
Définition
22Meriem Sari GL à Objet 2 2eme AM GL
 Connu comme: Policy pattern.
 Permet au comportement d'un algorithme d'être choisi au temps
d'exécution.
 Change l’algorithme en éxécution de l’objet Contexte.
 Laisse l'algorithme change indépendamment des clients qui
l‘éxécute.
 Definit une famille d’algorithmes et encapsule chaqu’une.
 Permet au algorithmes d’être interchangeable entre les familles.
Objectif
23Meriem Sari GL à Objet 2 2eme AM GL
Configurer beaucoup de classes relatives qui diffèrent seulement
dans leur comportement.
 Très utile dans les algorithmes basé sur la validation des données.
 Type de données.
 La source de données.
 Le choix de l’utilisateur…
 Utilisé par d’autres objets dans le meme système ou dans des
systèmes differents sans dupliqué le code.
Structure (1)
24Meriem Sari GL à Objet 2 2eme AM GL
Structure (2)
25Meriem Sari GL à Objet 2 2eme AM GL
 Context : maintient une référence sur l’objet Strategy et se manipule à
l’aide d’un objet ConcreteStrategy.
 Strategy: déclare une intérface commune pour tout les algorithmes
supportés.
 ConcreteStrategy: implémente l’algorithme en utilisant l’intérface
Strategy.
Conséquences
26Meriem Sari GL à Objet 2 2eme AM GL
 L’encapsulation de tout les comportements dans une seule classe
rendre difficile d’éviter les branchements conditionels.
 Elimine l’utilisation des branchements conditionels.
 Fournit des differentes implémentations pour un meme
comportement.
 Augmente le nombre des objets dans une application.
Exemple (1)
27Meriem Sari GL à Objet 2 2eme AM GL
Calculator
Exemple (Implémentation)
28Meriem Sari GL à Objet 2 2eme AM GL
Exemple (Implémentation)
29Meriem Sari GL à Objet 2 2eme AM GL
Visitor Pattern
30Meriem Sari GL à Objet 2 2eme AM GL
 Définition.
 Objectif.
 Structure.
 Conséquences.
 Exemple.
Définition
31Meriem Sari GL à Objet 2 2eme AM GL
 Représente une opération faite sur les éléments de structure de
l’object.
 Permet l’ajout des nouvelles opérations sans changer la structure
de l’objet.
 Sépare l’algorithme de la structure de l’objet sur lequel il
s’éxécute.
 Permet l’ajout des nouvelles fonctions virtuelles dans une classe
sans la modifier.
 Il respécte le principe ouvert/fermé .
Objectif
32Meriem Sari GL à Objet 2 2eme AM GL
 Considérer un compilateur qui représente les programmes sous
forme d’un arbre syntaxique.
 On a besoin d’éxécuter des opérations sur ces arbres (configurer
les noeuds).
 Compiler + Configurer = un système difficile à comprendre
(complexe).
 Le Visitor design pattern nous permet de configurer les arbre sans
polluer le code source du programme originale qui est le
compilateur.
Structure (1)
33Meriem Sari GL à Objet 2 2eme AM GL
Structure (2)
34Meriem Sari GL à Objet 2 2eme AM GL
 Visitor: déclare une opération de Visit pour chaque classe de
ConcreteElement .
 le nom et la signature de l’opération identifis la classe qui envoie la
demande de Visit au visitor.
 ConcreteVisitor: implemente chaque opération déclaré par Visitor.
 Element: definit une opération Accept qui prend en argument un
visitor.
 ConcreteElement: implemente une opération Accept qui prend en
argument un visitor.
Structure (3)
35Meriem Sari GL à Objet 2 2eme AM GL
 Considérer deux objets: un « élément" et un "visitor".
 un élément a une méthode accept() qui prend le visitor comme un
argument.
 La méthode accept() appèlle la méthode visit() de visitor.
 L’élément lui meme se passe en argument à la méthode visit() .
Exemple (1)
36Meriem Sari GL à Objet 2 2eme AM GL
Exemple (Implémentation)
37Meriem Sari GL à Objet 2 2eme AM GL
Exemple (Implémentation)
38Meriem Sari GL à Objet 2 2eme AM GL
Exemple (Implémentation)
39Meriem Sari GL à Objet 2 2eme AM GL
Exemple (Implémentation)
40Meriem Sari GL à Objet 2 2eme AM GL
Conclusion
41
Si nous n'étudions pas les patrons de conception au niveau de la
programmation OO, nous ne pourrons pas améliorer les logiciel, et il
sera plus difficile de les concevoir et réaliser.
Meriem Sari GL à Objet 2 2eme AM GL
Acknowledgment
42
Merçi Pour Votre Attention
Meriem Sari GL à Objet 2 2eme AM GL

Contenu connexe

Tendances

Patron observer
Patron observerPatron observer
Patron observer
Hibatallah Aouadni
 
Exercice 1 java Héritage
Exercice 1 java HéritageExercice 1 java Héritage
Exercice 1 java Héritage
NadaBenLatifa
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
ENSET, Université Hassan II Casablanca
 
POO Java Chapitre 4 Heritage et Polymorphisme
POO Java Chapitre 4 Heritage et PolymorphismePOO Java Chapitre 4 Heritage et Polymorphisme
POO Java Chapitre 4 Heritage et Polymorphisme
Mouna Torjmen
 
Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQL
webreaker
 
Design patterns - Exemples en Java
Design patterns - Exemples en JavaDesign patterns - Exemples en Java
Design patterns - Exemples en Java
Oussama BEN KHIROUN
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
ENSET, Université Hassan II Casablanca
 
Chp4 - Diagramme de Séquence
Chp4 - Diagramme de SéquenceChp4 - Diagramme de Séquence
Chp4 - Diagramme de Séquence
Lilia Sfaxi
 
Design Pattern introduction
Design Pattern introductionDesign Pattern introduction
Design Pattern introduction
neuros
 
Cours design pattern m youssfi partie 3 decorateur
Cours design pattern m youssfi partie 3 decorateurCours design pattern m youssfi partie 3 decorateur
Cours design pattern m youssfi partie 3 decorateur
ENSET, Université Hassan II Casablanca
 
Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
ENSET, Université Hassan II Casablanca
 
Concevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootConcevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring Boot
DNG Consulting
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdf
slimyaich3
 
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Ippon
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-Correction
Lilia Sfaxi
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependances
ENSET, Université Hassan II Casablanca
 
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfiJava entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
ENSET, Université Hassan II Casablanca
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - Correction
Lilia Sfaxi
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
ENSET, Université Hassan II Casablanca
 
Conception et Réalisation d’une application de Gestion SCOLAIRE
Conception et Réalisation d’une application de Gestion SCOLAIREConception et Réalisation d’une application de Gestion SCOLAIRE
Conception et Réalisation d’une application de Gestion SCOLAIRE
Ghizlane ALOZADE
 

Tendances (20)

Patron observer
Patron observerPatron observer
Patron observer
 
Exercice 1 java Héritage
Exercice 1 java HéritageExercice 1 java Héritage
Exercice 1 java Héritage
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
POO Java Chapitre 4 Heritage et Polymorphisme
POO Java Chapitre 4 Heritage et PolymorphismePOO Java Chapitre 4 Heritage et Polymorphisme
POO Java Chapitre 4 Heritage et Polymorphisme
 
Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQL
 
Design patterns - Exemples en Java
Design patterns - Exemples en JavaDesign patterns - Exemples en Java
Design patterns - Exemples en Java
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
 
Chp4 - Diagramme de Séquence
Chp4 - Diagramme de SéquenceChp4 - Diagramme de Séquence
Chp4 - Diagramme de Séquence
 
Design Pattern introduction
Design Pattern introductionDesign Pattern introduction
Design Pattern introduction
 
Cours design pattern m youssfi partie 3 decorateur
Cours design pattern m youssfi partie 3 decorateurCours design pattern m youssfi partie 3 decorateur
Cours design pattern m youssfi partie 3 decorateur
 
Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
 
Concevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootConcevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring Boot
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdf
 
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-Correction
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependances
 
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfiJava entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - Correction
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
 
Conception et Réalisation d’une application de Gestion SCOLAIRE
Conception et Réalisation d’une application de Gestion SCOLAIREConception et Réalisation d’une application de Gestion SCOLAIRE
Conception et Réalisation d’une application de Gestion SCOLAIRE
 

En vedette

A star
A starA star
A star
meriem sari
 
Cvs
CvsCvs
Contraintes uml
Contraintes umlContraintes uml
Contraintes uml
meriem sari
 
Diagrammes de classes uml
Diagrammes de classes umlDiagrammes de classes uml
Diagrammes de classes uml
meriem sari
 
Ws asp.net
Ws asp.netWs asp.net
Ws asp.net
meriem sari
 
Programmation orienté aspect
Programmation orienté aspectProgrammation orienté aspect
Programmation orienté aspect
meriem sari
 
Meta-modelisation avec eclipse
Meta-modelisation avec eclipseMeta-modelisation avec eclipse
Meta-modelisation avec eclipse
meriem sari
 
Design Patterns Presentation - Chetan Gole
Design Patterns Presentation -  Chetan GoleDesign Patterns Presentation -  Chetan Gole
Design Patterns Presentation - Chetan Gole
Chetan Gole
 
erocci - a scalable model-driven API framework, OW2con'16, Paris.
erocci - a scalable model-driven API framework, OW2con'16, Paris. erocci - a scalable model-driven API framework, OW2con'16, Paris.
erocci - a scalable model-driven API framework, OW2con'16, Paris.
OCCIware
 
01072013 e governance
01072013 e governance01072013 e governance
01072013 e governance
bharati k
 
Yet Another Three QVT Languages
Yet Another Three QVT LanguagesYet Another Three QVT Languages
Yet Another Three QVT Languages
Edward Willink
 
النشاط العلمي - الكهرباء
النشاط العلمي  -   الكهرباءالنشاط العلمي  -   الكهرباء
النشاط العلمي - الكهرباء
Erradi Mohamed
 
Model Transformation A Personal Perspective
Model Transformation A Personal PerspectiveModel Transformation A Personal Perspective
Model Transformation A Personal Perspective
Edward Willink
 
Collaboration and Governance of Open Source Projects
Collaboration and Governance of Open Source ProjectsCollaboration and Governance of Open Source Projects
Collaboration and Governance of Open Source Projects
Jordi Cabot
 
Design Thinking Assignment
Design Thinking AssignmentDesign Thinking Assignment
Design Thinking Assignment
Salma ES-Salmani
 
OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware
 
OCL Integration and Code Generation
OCL Integration and Code GenerationOCL Integration and Code Generation
OCL Integration and Code Generation
Edward Willink
 
Ressource numérique Circuit électrique au primaire
Ressource numérique Circuit électrique au primaire Ressource numérique Circuit électrique au primaire
Ressource numérique Circuit électrique au primaire
Erradi Mohamed
 
The OCLforUML Profile
The OCLforUML ProfileThe OCLforUML Profile
The OCLforUML Profile
Edward Willink
 

En vedette (20)

A star
A starA star
A star
 
Cvs
CvsCvs
Cvs
 
Contraintes uml
Contraintes umlContraintes uml
Contraintes uml
 
Diagrammes de classes uml
Diagrammes de classes umlDiagrammes de classes uml
Diagrammes de classes uml
 
Ws asp.net
Ws asp.netWs asp.net
Ws asp.net
 
Programmation orienté aspect
Programmation orienté aspectProgrammation orienté aspect
Programmation orienté aspect
 
Meta-modelisation avec eclipse
Meta-modelisation avec eclipseMeta-modelisation avec eclipse
Meta-modelisation avec eclipse
 
Design Patterns Presentation - Chetan Gole
Design Patterns Presentation -  Chetan GoleDesign Patterns Presentation -  Chetan Gole
Design Patterns Presentation - Chetan Gole
 
erocci - a scalable model-driven API framework, OW2con'16, Paris.
erocci - a scalable model-driven API framework, OW2con'16, Paris. erocci - a scalable model-driven API framework, OW2con'16, Paris.
erocci - a scalable model-driven API framework, OW2con'16, Paris.
 
01072013 e governance
01072013 e governance01072013 e governance
01072013 e governance
 
Yet Another Three QVT Languages
Yet Another Three QVT LanguagesYet Another Three QVT Languages
Yet Another Three QVT Languages
 
النشاط العلمي - الكهرباء
النشاط العلمي  -   الكهرباءالنشاط العلمي  -   الكهرباء
النشاط العلمي - الكهرباء
 
Model Transformation A Personal Perspective
Model Transformation A Personal PerspectiveModel Transformation A Personal Perspective
Model Transformation A Personal Perspective
 
Collaboration and Governance of Open Source Projects
Collaboration and Governance of Open Source ProjectsCollaboration and Governance of Open Source Projects
Collaboration and Governance of Open Source Projects
 
Java vs .Net
Java vs .NetJava vs .Net
Java vs .Net
 
Design Thinking Assignment
Design Thinking AssignmentDesign Thinking Assignment
Design Thinking Assignment
 
OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...
 
OCL Integration and Code Generation
OCL Integration and Code GenerationOCL Integration and Code Generation
OCL Integration and Code Generation
 
Ressource numérique Circuit électrique au primaire
Ressource numérique Circuit électrique au primaire Ressource numérique Circuit électrique au primaire
Ressource numérique Circuit électrique au primaire
 
The OCLforUML Profile
The OCLforUML ProfileThe OCLforUML Profile
The OCLforUML Profile
 

Similaire à Design patterns french

Design patterns
Design patternsDesign patterns
Design patterns
Eric Toguem
 
Cours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyCours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategy
ENSET, Université Hassan II Casablanca
 
UML-jamil.pptx
UML-jamil.pptxUML-jamil.pptx
UML-jamil.pptx
kdekde1
 
Patrons de conception
Patrons de conceptionPatrons de conception
Patrons de conception
maaroufi amine
 
Chapitre II. METHODE D'ANALYSE P2 MCD .pptx
Chapitre II. METHODE D'ANALYSE P2 MCD .pptxChapitre II. METHODE D'ANALYSE P2 MCD .pptx
Chapitre II. METHODE D'ANALYSE P2 MCD .pptx
anisanima1
 
Patrons de creation
Patrons de creationPatrons de creation
Patrons de creation
omri med
 
Support de cours Conception orientée objets - partie 1.pdf
Support de cours Conception orientée objets - partie 1.pdfSupport de cours Conception orientée objets - partie 1.pdf
Support de cours Conception orientée objets - partie 1.pdf
YasushiTsubakik
 
Design Patterns Java
Design Patterns JavaDesign Patterns Java
Design Patterns Java
VINOT Bernard
 
Chapitre_5_Génie logiciel et UML.pdf
Chapitre_5_Génie logiciel et UML.pdfChapitre_5_Génie logiciel et UML.pdf
Chapitre_5_Génie logiciel et UML.pdf
ZakariaTouyeb
 
Programmation Orientée Objet Concept de base
Programmation Orientée Objet Concept de baseProgrammation Orientée Objet Concept de base
Programmation Orientée Objet Concept de base
AmadouBOUSSO3
 
Architecture Logiciel_GRASP11111111.pptx
Architecture Logiciel_GRASP11111111.pptxArchitecture Logiciel_GRASP11111111.pptx
Architecture Logiciel_GRASP11111111.pptx
afamanalafa2001
 
Cours partie1 elgarrai zineb
Cours partie1 elgarrai zinebCours partie1 elgarrai zineb
Cours partie1 elgarrai zineb
Zineb ELGARRAI
 
Diagramme des cas d’utilisation.pdf
 Diagramme des cas d’utilisation.pdf Diagramme des cas d’utilisation.pdf
Diagramme des cas d’utilisation.pdf
YasushiTsubakik
 
PROGRAMMATION 2e GENIE PARTIE THEORIE.ppt
PROGRAMMATION 2e GENIE PARTIE THEORIE.pptPROGRAMMATION 2e GENIE PARTIE THEORIE.ppt
PROGRAMMATION 2e GENIE PARTIE THEORIE.ppt
EddySHANGA
 
2-Composants.docx
2-Composants.docx2-Composants.docx
2-Composants.docx
bochramiinfo
 
Entity_framework_db first
Entity_framework_db firstEntity_framework_db first
Entity_framework_db first
Zineb ELGARRAI
 
diagramme de séquence UML
diagramme de séquence UMLdiagramme de séquence UML
diagramme de séquence UML
Amir Souissi
 

Similaire à Design patterns french (20)

Design patterns
Design patternsDesign patterns
Design patterns
 
Cours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyCours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategy
 
UML-jamil.pptx
UML-jamil.pptxUML-jamil.pptx
UML-jamil.pptx
 
Patrons de conception
Patrons de conceptionPatrons de conception
Patrons de conception
 
Chapitre II. METHODE D'ANALYSE P2 MCD .pptx
Chapitre II. METHODE D'ANALYSE P2 MCD .pptxChapitre II. METHODE D'ANALYSE P2 MCD .pptx
Chapitre II. METHODE D'ANALYSE P2 MCD .pptx
 
Cours uml
Cours umlCours uml
Cours uml
 
Patrons de creation
Patrons de creationPatrons de creation
Patrons de creation
 
Support de cours Conception orientée objets - partie 1.pdf
Support de cours Conception orientée objets - partie 1.pdfSupport de cours Conception orientée objets - partie 1.pdf
Support de cours Conception orientée objets - partie 1.pdf
 
Poo
PooPoo
Poo
 
Design Patterns Java
Design Patterns JavaDesign Patterns Java
Design Patterns Java
 
Chapitre_5_Génie logiciel et UML.pdf
Chapitre_5_Génie logiciel et UML.pdfChapitre_5_Génie logiciel et UML.pdf
Chapitre_5_Génie logiciel et UML.pdf
 
Programmation Orientée Objet Concept de base
Programmation Orientée Objet Concept de baseProgrammation Orientée Objet Concept de base
Programmation Orientée Objet Concept de base
 
Architecture Logiciel_GRASP11111111.pptx
Architecture Logiciel_GRASP11111111.pptxArchitecture Logiciel_GRASP11111111.pptx
Architecture Logiciel_GRASP11111111.pptx
 
Cours partie1 elgarrai zineb
Cours partie1 elgarrai zinebCours partie1 elgarrai zineb
Cours partie1 elgarrai zineb
 
Diagramme des cas d’utilisation.pdf
 Diagramme des cas d’utilisation.pdf Diagramme des cas d’utilisation.pdf
Diagramme des cas d’utilisation.pdf
 
PROGRAMMATION 2e GENIE PARTIE THEORIE.ppt
PROGRAMMATION 2e GENIE PARTIE THEORIE.pptPROGRAMMATION 2e GENIE PARTIE THEORIE.ppt
PROGRAMMATION 2e GENIE PARTIE THEORIE.ppt
 
2-Composants.docx
2-Composants.docx2-Composants.docx
2-Composants.docx
 
Entity_framework_db first
Entity_framework_db firstEntity_framework_db first
Entity_framework_db first
 
diagramme de séquence UML
diagramme de séquence UMLdiagramme de séquence UML
diagramme de séquence UML
 
diagramme de cas d'utilisation
diagramme de cas d'utilisationdiagramme de cas d'utilisation
diagramme de cas d'utilisation
 

Plus de meriem sari

What is an aspect in aspect oriented requirements engineering
What is an aspect in aspect oriented requirements engineeringWhat is an aspect in aspect oriented requirements engineering
What is an aspect in aspect oriented requirements engineering
meriem sari
 
Structural features for face recognition
Structural features for face recognitionStructural features for face recognition
Structural features for face recognition
meriem sari
 
Rest ws
Rest wsRest ws
Rest ws
meriem sari
 
Qt user interface
Qt user interfaceQt user interface
Qt user interface
meriem sari
 
Design patterns english
Design patterns englishDesign patterns english
Design patterns english
meriem sari
 
Cvl
CvlCvl

Plus de meriem sari (6)

What is an aspect in aspect oriented requirements engineering
What is an aspect in aspect oriented requirements engineeringWhat is an aspect in aspect oriented requirements engineering
What is an aspect in aspect oriented requirements engineering
 
Structural features for face recognition
Structural features for face recognitionStructural features for face recognition
Structural features for face recognition
 
Rest ws
Rest wsRest ws
Rest ws
 
Qt user interface
Qt user interfaceQt user interface
Qt user interface
 
Design patterns english
Design patterns englishDesign patterns english
Design patterns english
 
Cvl
CvlCvl
Cvl
 

Dernier

Estimations ELABE BFMTV ABSTENTION élections européennes 2024
Estimations ELABE BFMTV ABSTENTION élections européennes 2024Estimations ELABE BFMTV ABSTENTION élections européennes 2024
Estimations ELABE BFMTV ABSTENTION élections européennes 2024
contact Elabe
 
Comprendre le vote aux élections européennes du 9 juin 2024
Comprendre le vote aux élections européennes du 9 juin 2024Comprendre le vote aux élections européennes du 9 juin 2024
Comprendre le vote aux élections européennes du 9 juin 2024
contact Elabe
 
Barometre_de_l_Economie_S1_2024_-_BAT__1_.pdf
Barometre_de_l_Economie_S1_2024_-_BAT__1_.pdfBarometre_de_l_Economie_S1_2024_-_BAT__1_.pdf
Barometre_de_l_Economie_S1_2024_-_BAT__1_.pdf
Paperjam_redaction
 
Deuxième actualisation estimation élections européennes 2024
Deuxième actualisation estimation élections européennes 2024Deuxième actualisation estimation élections européennes 2024
Deuxième actualisation estimation élections européennes 2024
contact Elabe
 
Webinaire_les aides aux investissements.pptx
Webinaire_les aides aux investissements.pptxWebinaire_les aides aux investissements.pptx
Webinaire_les aides aux investissements.pptx
Institut de l'Elevage - Idele
 
Estimation élections européennes 2024 ELABE
Estimation élections européennes 2024 ELABEEstimation élections européennes 2024 ELABE
Estimation élections européennes 2024 ELABE
contact Elabe
 
Webinaire Qui sont les jeunes installés avec un bac +5 ?
Webinaire Qui sont les jeunes installés avec un bac +5 ?Webinaire Qui sont les jeunes installés avec un bac +5 ?
Webinaire Qui sont les jeunes installés avec un bac +5 ?
Institut de l'Elevage - Idele
 
Actualisation estimation élections européennes 2024
Actualisation estimation élections européennes 2024Actualisation estimation élections européennes 2024
Actualisation estimation élections européennes 2024
contact Elabe
 
Les Français et les élections européennes - 9ème vague
Les Français et les élections européennes - 9ème vagueLes Français et les élections européennes - 9ème vague
Les Français et les élections européennes - 9ème vague
contact Elabe
 
Productivité et politique industrielles: deux défis à relever conjointement
Productivité et politique industrielles: deux défis à relever conjointementProductivité et politique industrielles: deux défis à relever conjointement
Productivité et politique industrielles: deux défis à relever conjointement
La Fabrique de l'industrie
 

Dernier (10)

Estimations ELABE BFMTV ABSTENTION élections européennes 2024
Estimations ELABE BFMTV ABSTENTION élections européennes 2024Estimations ELABE BFMTV ABSTENTION élections européennes 2024
Estimations ELABE BFMTV ABSTENTION élections européennes 2024
 
Comprendre le vote aux élections européennes du 9 juin 2024
Comprendre le vote aux élections européennes du 9 juin 2024Comprendre le vote aux élections européennes du 9 juin 2024
Comprendre le vote aux élections européennes du 9 juin 2024
 
Barometre_de_l_Economie_S1_2024_-_BAT__1_.pdf
Barometre_de_l_Economie_S1_2024_-_BAT__1_.pdfBarometre_de_l_Economie_S1_2024_-_BAT__1_.pdf
Barometre_de_l_Economie_S1_2024_-_BAT__1_.pdf
 
Deuxième actualisation estimation élections européennes 2024
Deuxième actualisation estimation élections européennes 2024Deuxième actualisation estimation élections européennes 2024
Deuxième actualisation estimation élections européennes 2024
 
Webinaire_les aides aux investissements.pptx
Webinaire_les aides aux investissements.pptxWebinaire_les aides aux investissements.pptx
Webinaire_les aides aux investissements.pptx
 
Estimation élections européennes 2024 ELABE
Estimation élections européennes 2024 ELABEEstimation élections européennes 2024 ELABE
Estimation élections européennes 2024 ELABE
 
Webinaire Qui sont les jeunes installés avec un bac +5 ?
Webinaire Qui sont les jeunes installés avec un bac +5 ?Webinaire Qui sont les jeunes installés avec un bac +5 ?
Webinaire Qui sont les jeunes installés avec un bac +5 ?
 
Actualisation estimation élections européennes 2024
Actualisation estimation élections européennes 2024Actualisation estimation élections européennes 2024
Actualisation estimation élections européennes 2024
 
Les Français et les élections européennes - 9ème vague
Les Français et les élections européennes - 9ème vagueLes Français et les élections européennes - 9ème vague
Les Français et les élections européennes - 9ème vague
 
Productivité et politique industrielles: deux défis à relever conjointement
Productivité et politique industrielles: deux défis à relever conjointementProductivité et politique industrielles: deux défis à relever conjointement
Productivité et politique industrielles: deux défis à relever conjointement
 

Design patterns french

  • 1. Design Patterns Par: Sari Meriem 1 UNIVERSITE de MOHAMED CHERIF MESAADIA SOUK-AHRAS Département de Math & Informatique Exposé sur:
  • 2. Motivation 2Meriem Sari GL à Objet 2 2eme AM GL  Concevoir un logiciel en OO est difficle.  Concevoir un logiciel réutilisable en OO est plus difficile.  Difficile de trouver les objets et les rassembler selon le bon niveau de granularité.  Difficile de définir les classes, les interfaces et les relations d’héritage entre eux.  Difficile d’établir les relations entre les classes.  La conception doit être spécifique à un problem mais suffisament générale pour résoudre des future problèmes.
  • 3. Motivation 3  Les concepteurs Expèrts réutilise des solutions éxistantes pour résoudre des nouveaux problèmes.  ça cause la Réoccurance des patrons de classes et des différent objets en communication dans plusieurs systèmes.  L’application de ces patrons nous produise un logiciel fléxible, élégant et finalement réutilisable. Meriem Sari GL à Objet 2 2eme AM GL
  • 4. Historique 4  Dans cette présentation on va considéré les patrons de conception publié dans le livre: «Design Patterns - Elements of Reusable Object-Oriented Software» par le GOF. Meriem Sari GL à Objet 2 2eme AM GL
  • 5. Historique 5 Erich Gamma Ralph Johnson John Vlissides Richard Helm Meriem Sari GL à Objet 2 2eme AM GL
  • 6. Plan 6Meriem Sari GL à Objet 2 2eme AM GL  Définition.  Classification.  State Design Pattern.  Strategy Design Pattern.  Visitor Design Pattern.
  • 7. Définition 7 Selon Christopher Alexander:  Un patrons décrit un problème qui se produit plusieurs fois.  Il décrit le noyau de la solution à ce problème.  Cette solution peut être utilisé un million de fois, sans jamais la faire de la même manière deux fois. Meriem Sari GL à Objet 2 2eme AM GL
  • 8. Définition 8  Chaque patron a quatre éléments basiques:  Le nom du patron: il décrit le problème dont ce patron résout pour faciliter la documentation et la communication entre les concepteurs et les developpeurs.  Le problème: décrit quand on doit appliquer ce patron.  La solution: décrit l’arrangement générale des éléments (classes et objets ) qui résout le problème.  Les conséquences: décrit les résultats d’appliquer ce patron dont le but est d’évaluer ses alternatives , les coûts et les benefices de son application. Meriem Sari GL à Objet 2 2eme AM GL
  • 9. Classification 9  Les patrons de conception se diffèrent dans leurs granularité et niveau d’abstraction.  Ils sont classifié selon deux critères:  Par but i.e. que fait le patron.  Patrons de Création: concerne le processe de création des objets.  Patrons de Structure: manipule la composition des classes ou objets.  Patrons de Comportement: s’occupe de la façon comment les classes et les objets s’interagissent .  Par scope i.e. est. ce que ce patron s’applique sur des classes ou des objets. Meriem Sari GL à Objet 2 2eme AM GL
  • 10. Classification 10Meriem Sari GL à Objet 2 2eme AM GL
  • 11. Design Patterns 11  Dans cette présentation on va abbordé trois patrons de comportement qui sont:  State design pattern.  Strategy design pattern.  Visitor design pattern. Meriem Sari GL à Objet 2 2eme AM GL
  • 12. State Pattern 12  Définition.  Objectif.  Structure.  Conséquences.  Exemple. Meriem Sari GL à Objet 2 2eme AM GL
  • 13. Définition 13  Connu comme : Objects for States.  Le comportement d’un objet dépend de son état.  Permet à un objet de changer son comportement quand son état interne se change.  Ce changement se fait lors de l’éxécution.  Encapsule les différent comportements d’un meme objet basé sur ses états. Meriem Sari GL à Objet 2 2eme AM GL
  • 14. Objectif 14  Minimise l’utilisation des branchements conditionels qui résulte le changement d’état d’un objet.  Met chaque branche d’une instruction conditionelle dans une classe séparée .  Il nous permet de traiter les états d’un objet comme des objets indépendents des autres objets. Meriem Sari GL à Objet 2 2eme AM GL
  • 15. Structure (1) 15Meriem Sari GL à Objet 2 2eme AM GL
  • 16. Structure (2) 16  Context: définit l’interface d’intérét pour le client .  State: définit l’interface pour encapsuler le comportement associé à un état particulié de l’objet Context.  Concrete State Subclass: chaque sous classe implemente un comportement associé à un état de l’objet Context. Meriem Sari GL à Objet 2 2eme AM GL
  • 17. Conséquences 17  Le State pattern met tout les comportements associés à un état particulié dans un seul objet.  Quand un objet definit son état courrant de façcon interne, son transition d’état a aucune représentation éxplicite.  Les objets State peuvent etre partagé entre des objets Contexts (Flyweight). Meriem Sari GL à Objet 2 2eme AM GL
  • 18. Exemple (1) 18Meriem Sari GL à Objet 2 2eme AM GL
  • 19. Exemple (Implémentation) 19Meriem Sari GL à Objet 2 2eme AM GL
  • 20. Exemple (Implémentation) 20Meriem Sari GL à Objet 2 2eme AM GL
  • 21. Strategy Pattern 21Meriem Sari GL à Objet 2 2eme AM GL  Définition.  Objectif.  Structure.  Conséquences.  Exemple.
  • 22. Définition 22Meriem Sari GL à Objet 2 2eme AM GL  Connu comme: Policy pattern.  Permet au comportement d'un algorithme d'être choisi au temps d'exécution.  Change l’algorithme en éxécution de l’objet Contexte.  Laisse l'algorithme change indépendamment des clients qui l‘éxécute.  Definit une famille d’algorithmes et encapsule chaqu’une.  Permet au algorithmes d’être interchangeable entre les familles.
  • 23. Objectif 23Meriem Sari GL à Objet 2 2eme AM GL Configurer beaucoup de classes relatives qui diffèrent seulement dans leur comportement.  Très utile dans les algorithmes basé sur la validation des données.  Type de données.  La source de données.  Le choix de l’utilisateur…  Utilisé par d’autres objets dans le meme système ou dans des systèmes differents sans dupliqué le code.
  • 24. Structure (1) 24Meriem Sari GL à Objet 2 2eme AM GL
  • 25. Structure (2) 25Meriem Sari GL à Objet 2 2eme AM GL  Context : maintient une référence sur l’objet Strategy et se manipule à l’aide d’un objet ConcreteStrategy.  Strategy: déclare une intérface commune pour tout les algorithmes supportés.  ConcreteStrategy: implémente l’algorithme en utilisant l’intérface Strategy.
  • 26. Conséquences 26Meriem Sari GL à Objet 2 2eme AM GL  L’encapsulation de tout les comportements dans une seule classe rendre difficile d’éviter les branchements conditionels.  Elimine l’utilisation des branchements conditionels.  Fournit des differentes implémentations pour un meme comportement.  Augmente le nombre des objets dans une application.
  • 27. Exemple (1) 27Meriem Sari GL à Objet 2 2eme AM GL Calculator
  • 28. Exemple (Implémentation) 28Meriem Sari GL à Objet 2 2eme AM GL
  • 29. Exemple (Implémentation) 29Meriem Sari GL à Objet 2 2eme AM GL
  • 30. Visitor Pattern 30Meriem Sari GL à Objet 2 2eme AM GL  Définition.  Objectif.  Structure.  Conséquences.  Exemple.
  • 31. Définition 31Meriem Sari GL à Objet 2 2eme AM GL  Représente une opération faite sur les éléments de structure de l’object.  Permet l’ajout des nouvelles opérations sans changer la structure de l’objet.  Sépare l’algorithme de la structure de l’objet sur lequel il s’éxécute.  Permet l’ajout des nouvelles fonctions virtuelles dans une classe sans la modifier.  Il respécte le principe ouvert/fermé .
  • 32. Objectif 32Meriem Sari GL à Objet 2 2eme AM GL  Considérer un compilateur qui représente les programmes sous forme d’un arbre syntaxique.  On a besoin d’éxécuter des opérations sur ces arbres (configurer les noeuds).  Compiler + Configurer = un système difficile à comprendre (complexe).  Le Visitor design pattern nous permet de configurer les arbre sans polluer le code source du programme originale qui est le compilateur.
  • 33. Structure (1) 33Meriem Sari GL à Objet 2 2eme AM GL
  • 34. Structure (2) 34Meriem Sari GL à Objet 2 2eme AM GL  Visitor: déclare une opération de Visit pour chaque classe de ConcreteElement .  le nom et la signature de l’opération identifis la classe qui envoie la demande de Visit au visitor.  ConcreteVisitor: implemente chaque opération déclaré par Visitor.  Element: definit une opération Accept qui prend en argument un visitor.  ConcreteElement: implemente une opération Accept qui prend en argument un visitor.
  • 35. Structure (3) 35Meriem Sari GL à Objet 2 2eme AM GL  Considérer deux objets: un « élément" et un "visitor".  un élément a une méthode accept() qui prend le visitor comme un argument.  La méthode accept() appèlle la méthode visit() de visitor.  L’élément lui meme se passe en argument à la méthode visit() .
  • 36. Exemple (1) 36Meriem Sari GL à Objet 2 2eme AM GL
  • 37. Exemple (Implémentation) 37Meriem Sari GL à Objet 2 2eme AM GL
  • 38. Exemple (Implémentation) 38Meriem Sari GL à Objet 2 2eme AM GL
  • 39. Exemple (Implémentation) 39Meriem Sari GL à Objet 2 2eme AM GL
  • 40. Exemple (Implémentation) 40Meriem Sari GL à Objet 2 2eme AM GL
  • 41. Conclusion 41 Si nous n'étudions pas les patrons de conception au niveau de la programmation OO, nous ne pourrons pas améliorer les logiciel, et il sera plus difficile de les concevoir et réaliser. Meriem Sari GL à Objet 2 2eme AM GL
  • 42. Acknowledgment 42 Merçi Pour Votre Attention Meriem Sari GL à Objet 2 2eme AM GL