SlideShare une entreprise Scribd logo
1  sur  37
Télécharger pour lire hors ligne
LES DESIGN PATTERNS
PATTERNS COMPORTEMENTAUX
PART1
SOMMAIRE
PRÉSENTATION PATTERNS COMPORTEMENTAUX

• Définition
LES PATTERNS

•
•
•
•
•

Strategy
State
Visitor
Iterator
Observer

QUIZZ

• Petit test à chaud :p
2
PRÉSENTATION
PATTERNS
COMPORTEMENTAUX
PRÉSENTATION PATTERNS COMPORTEMENTAUX
DÉFINITION

+ LES TROIS FAMILLES (SUIVANT LES DÉCOUPAGES…)





CONSTRUCTION
STRUCTURE
COMPORTEMENT

+ OBJECTIF


FOURNIR DES SOLUTIONS POUR DISTRIBUER LES TRAITEMENTS ET LES
ALGORITHMES ENTRE LES OBJETS

+ MOYENS


DISTRIBUTION PAR DÉLÉGATION OU HÉRITAGE

4
LES PATTERNS
LE PATTERN STRATEGY
STRATEGY
VUE GLOBALE

PROBLÈME

• Un objet doit effectuer plusieurs traitements différents, dépendant
d’une variable ou d’un état
DESCRIPTION

• Vous avez une classe dédiée à une tâche spécifique. Dans un
premier temps, celle-ci effectue une opération suivant un
algorithme bien précis. Cependant, avec le temps, cette classe
sera amenée à évoluer, et elle suivra plusieurs algorithmes, tout
en effectuant la même tâche de base.
• Ex: format(), excecute(),…
SOLUTION

• Délégation du traitement à une classe externe et création d’une
famille d’algorithme
6
STRATEGY

REPRÉSENTATION UML

7
STRATEGY
EXEMPLE UML

8
STRATEGY

EXEMPLE CODE

+ Voir code dans IDE

9
LES PATTERNS
LE PATTERN STATE
STATE

VUE GLOBALE
PROBLÈME

• Le comportement d’un objet est susceptible de changer en
fonction de son état (on ne peut pas clôturer un compte qui n’est
pas ouvert…)
DESCRIPTION

• Le pattern State permet à un objet d’adapter son comportement
en fonction de son état interne
• L’idée se représente bien par les diagrammes d’état UML
SOLUTION

• On délègue à des classes « état » le fait d’implémenter les
différent comportement de l’objet
11
STATE

REPRÉSENTATION UML

12
STATE

LES CLASSES
StateMachine

• Classe concrète décrivant des objets qui sont des machines à
états. Cette classe maintient une référence sur l’interface State.
State

• Interface à implémenter regroupant les comportements qui sont
dépendants de l’état de l’objet
ConcreteState

• Les classes qui implémentent State et définissent les divers
comportements
13
STATE

EXEMPLE UML

14
STATE

EXEMPLE CODE

+ http://rpouiller.developpez.com/tutoriel/java/design-patterns-gang-offour/?page=page_4#LVI-H

15
LES PATTERNS
LE PATTERN VISITOR
VISITOR

VUE GLOBALE
PROBLÈME

• Vous voulez laissez la possibilité d’étendre le comportement de
votre objet sans pour autant en modifier le code
DESCRIPTION

• le but est de laisser l’opportunité à des classes Visiteur d’accéder
à l’instance de l’objet visiter pour modifier son comportement.
• C’est un design qui est souvent associé au design pattern
Composite
SOLUTION

• Tous les objets qui acceptent que leur comportement soit étendu
propose une méthode accessible au visiteur.
17
VISITOR

REPRÉSENTATION UML

18
VISITOR

LES CLASSES
Visitor

• définit l'interface d'une visiteur. Elle déclare les méthodes de visite
des sous-classes concrètes de Element.
ConcreteVisitor

• sont des sous-classes concrètes de l'interface Visiteur. Elles
implémentent des comportements de visite des Element.
Element

• définit l'interface d'une élément. Elle déclare la méthode de
réception d'un objet Visiteur
ConcreteElement

• sont des sous-classes concrètes de l'interface Element. Elles
implémentent la méthode de réception. Elles possèdent des
données/attributs et méthodes différents.
19
VISITOR

EXEMPLE UML

20
VISITOR

EXEMPLE CODE

+ http://www.programcreek.com/2011/05/visitor-design-pattern-example/

21
LES PATTERNS
LE PATTERN ITERATOR
ITERATOR

VUE GLOBALE
PROBLÈME

• Parcourir séquentiellement les éléments d'un objet composé.
DESCRIPTION

• Le système doit parcourir les éléments d'un objet complexe. La
classe de l'objet complexe peut varier.
• Cela est le cas des classes représentant des listes et des
ensembles en Java. Elles ont une méthode retournant un
itérateur, qui permet de parcourir les éléments.
SOLUTION

• Le Design Pattern permet d'isoler le parcours d'un agrégat dans
une classe Iterator
23
ITERATOR

REPRÉSENTATION UML

24
ITERATOR
LES CLASSES

Compose

• définit l'interface d'un objet composé permettant de créer un
Iterateur.
ConcreteCompose

• est une sous-classe de l'interface Compose. Elle est composée
d'éléments et implémente la méthode de création d'un Iterateur.
Iterateur

• définit l'interface de l'itérateur, qui permet d'accéder aux éléments
de l'objet Compose.
ConcreteIterateur

• est une sous-classe de l'inteface Iterateur. Elle fournit une
implémentation permettant de parcourir les éléments de
ConcreteCompose. Elle conserve la trace de la position courante.
25
ITERATOR

EXEMPLE CODE

+ http://www.avajava.com/tutorials/lessons/iterator-pattern.html
+ http://blog.zenika.com/index.php?post/2010/10/31/Au-coeur-du-JDK-%3A-linterface-Iterable

26
LES PATTERNS
LE PATTERN OBSERVER
OBSERVER
VUE GLOBALE

PROBLÈME

• Des objets dépendent de l’état d’un autre objet et veulent être
notifié d’un changement d’état de ce dernier
DESCRIPTION

• Le pattern Obserever a pour objectif de construire une
dépendance entre un sujet et des observateurs de sorte que
chaque modification du sujet soit notifiée aux observateurs afin
qu’il puissent mettre à jour leur état.
• Ex: Listener Swing,…
SOLUTION

• Ajouter une méthode update à tous les Observer et gérer une
liste d’Observer au niveau du Sujet
28
OBSERVER

REPRÉSENTATION UML

29
OBSERVER
LES CLASSES
Subject

• Classe abstraite qui introduit l’association avec les Observers
Observer

• Interface à implémenter pour recevoir des notifications
ConcreteSubject

• Classe d’implémentation d’un Subject. C’est lui qui envoie une
notif quand son état est modifié
ConcreteObserver

• Maintient une référence vers le subject et implémente la méthode
update(). Elle peut aussi demandé des infos au Subject sur son
état.
30
OBSERVER
EXEMPLE

+ http://javapostsforlearning.blogspot.in/2013/02/observer-design-pattern-injava.html

+ Petit exemple Swing sur IDE

31
QUIZZ
QUIZZ

TEST À CHAUD 

Q: Quel Objet ne fait pas partie du Design Pattern
Iterator:
1. Iterator

2. ConcreteIterator
3. Aggregate
4. Invoker

© SQLI GROUP

33
QUIZZ

TEST À CHAUD 

Q: Quel Objet ne fait pas partie du Design Pattern
Observer:
1. Observer

2. Subject
3. ConcreteSubject
4. Observed

© SQLI GROUP

34
QUIZZ

TEST À CHAUD 

Q: Quel Objet ne fait pas partie du Design Pattern
State:
1. ConcretStrategyA

2. Subject
3. ConcretStrategyB
4. Strategy

© SQLI GROUP

35
QUIZZ

TEST À CHAUD 

Q: Quel est le Design Pattern qui défini une famille
d’algorithme, les encapsule et rend chacun
interchangeables. Permettant à l’algo de changer
indépendamment du client qui l’utilise ?
1. State

2. Strategy
3. Observer
4. Visitor

© SQLI GROUP

36
LES DESIGN PATTERNS – PART1
QUESTIONS / REPONSES

37

Contenu connexe

Tendances

La gestion de projets informatiques
La gestion de projets informatiquesLa gestion de projets informatiques
La gestion de projets informatiquesLoïc Charpentier
 
Gestion d’un projet informatique
Gestion d’un projet informatiqueGestion d’un projet informatique
Gestion d’un projet informatiqueAymen Foudhaili
 
Spring Meetup Paris - Back to the basics of Spring (Boot)
Spring Meetup Paris - Back to the basics of Spring (Boot)Spring Meetup Paris - Back to the basics of Spring (Boot)
Spring Meetup Paris - Back to the basics of Spring (Boot)Eric SIBER
 
Scrum les principes de base
Scrum les principes de base Scrum les principes de base
Scrum les principes de base Sirine Barguaoui
 
Présentation scrum pour cours leeaarn
Présentation scrum pour cours leeaarnPrésentation scrum pour cours leeaarn
Présentation scrum pour cours leeaarnGautier Pialat
 
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 BootDNG Consulting
 
TD3-UML-Correction
TD3-UML-CorrectionTD3-UML-Correction
TD3-UML-CorrectionLilia Sfaxi
 
Présentation PFE: Système de gestion des réclamations et interventions clients
Présentation PFE: Système de gestion des réclamations et interventions clientsPrésentation PFE: Système de gestion des réclamations et interventions clients
Présentation PFE: Système de gestion des réclamations et interventions clientsMohamed Ayoub OUERTATANI
 
Application web et mobile.potx
Application web et mobile.potxApplication web et mobile.potx
Application web et mobile.potxBelwafi Bilel
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - CorrectionLilia Sfaxi
 
Programmation orientée objet en PHP 5
Programmation orientée objet en PHP 5Programmation orientée objet en PHP 5
Programmation orientée objet en PHP 5Kristen Le Liboux
 
Ingénieur FullStack Java/Angular
Ingénieur FullStack Java/Angular  Ingénieur FullStack Java/Angular
Ingénieur FullStack Java/Angular Maroua Haddad
 

Tendances (20)

Développement d'un site web de E-Commerce avec PHP (Première Partie)
Développement d'un site web de E-Commerce avec PHP (Première Partie)Développement d'un site web de E-Commerce avec PHP (Première Partie)
Développement d'un site web de E-Commerce avec PHP (Première Partie)
 
La gestion de projets informatiques
La gestion de projets informatiquesLa gestion de projets informatiques
La gestion de projets informatiques
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
Les pratiques Scrum
Les pratiques ScrumLes pratiques Scrum
Les pratiques Scrum
 
Modele mvc
Modele mvcModele mvc
Modele mvc
 
Gestion d’un projet informatique
Gestion d’un projet informatiqueGestion d’un projet informatique
Gestion d’un projet informatique
 
Spring Meetup Paris - Back to the basics of Spring (Boot)
Spring Meetup Paris - Back to the basics of Spring (Boot)Spring Meetup Paris - Back to the basics of Spring (Boot)
Spring Meetup Paris - Back to the basics of Spring (Boot)
 
Scrum les principes de base
Scrum les principes de base Scrum les principes de base
Scrum les principes de base
 
Présentation scrum pour cours leeaarn
Présentation scrum pour cours leeaarnPrésentation scrum pour cours leeaarn
Présentation scrum pour cours leeaarn
 
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
 
TD3-UML-Correction
TD3-UML-CorrectionTD3-UML-Correction
TD3-UML-Correction
 
Cours design pattern m youssfi partie 4 composite
Cours design pattern m youssfi partie 4 compositeCours design pattern m youssfi partie 4 composite
Cours design pattern m youssfi partie 4 composite
 
Python avancé : Classe et objet
Python avancé : Classe et objetPython avancé : Classe et objet
Python avancé : Classe et objet
 
Servlets et JSP
Servlets et JSPServlets et JSP
Servlets et JSP
 
Présentation PFE: Système de gestion des réclamations et interventions clients
Présentation PFE: Système de gestion des réclamations et interventions clientsPrésentation PFE: Système de gestion des réclamations et interventions clients
Présentation PFE: Système de gestion des réclamations et interventions clients
 
Application web et mobile.potx
Application web et mobile.potxApplication web et mobile.potx
Application web et mobile.potx
 
Site JEE de ECommerce Basé sur Spring IOC MVC Security JPA Hibernate
Site JEE de ECommerce  Basé sur Spring IOC MVC Security JPA HibernateSite JEE de ECommerce  Basé sur Spring IOC MVC Security JPA Hibernate
Site JEE de ECommerce Basé sur Spring IOC MVC Security JPA Hibernate
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - Correction
 
Programmation orientée objet en PHP 5
Programmation orientée objet en PHP 5Programmation orientée objet en PHP 5
Programmation orientée objet en PHP 5
 
Ingénieur FullStack Java/Angular
Ingénieur FullStack Java/Angular  Ingénieur FullStack Java/Angular
Ingénieur FullStack Java/Angular
 

En vedette (8)

Eolfc 2013 crosswind farms - local food processing considerations
Eolfc 2013   crosswind farms - local food processing considerationsEolfc 2013   crosswind farms - local food processing considerations
Eolfc 2013 crosswind farms - local food processing considerations
 
Diseño web
Diseño webDiseño web
Diseño web
 
Eolfc 2013 kawartha country wines - experiences in innovative local food proc...
Eolfc 2013 kawartha country wines - experiences in innovative local food proc...Eolfc 2013 kawartha country wines - experiences in innovative local food proc...
Eolfc 2013 kawartha country wines - experiences in innovative local food proc...
 
Interacao e protocolo eSquirt do Projeto Cooltown
Interacao e protocolo eSquirt do Projeto CooltownInteracao e protocolo eSquirt do Projeto Cooltown
Interacao e protocolo eSquirt do Projeto Cooltown
 
Teori Graph : vektor
Teori Graph : vektorTeori Graph : vektor
Teori Graph : vektor
 
Design specifications pdf
Design specifications pdfDesign specifications pdf
Design specifications pdf
 
áReas de regiones poligonales, perímetros
áReas de regiones poligonales, perímetrosáReas de regiones poligonales, perímetros
áReas de regiones poligonales, perímetros
 
Trabajo sobre Lance Armstrong
Trabajo sobre Lance ArmstrongTrabajo sobre Lance Armstrong
Trabajo sobre Lance Armstrong
 

Similaire à Design patterns comportementaux

Design patterns gof fr
Design patterns gof frDesign patterns gof fr
Design patterns gof frIt Academy
 
Cours php & Mysql - 4éme partie
Cours php & Mysql - 4éme partieCours php & Mysql - 4éme partie
Cours php & Mysql - 4éme partiekadzaki
 
Design patterns et Design Emergeant - Micro Days - Modern Software Developmen...
Design patterns et Design Emergeant - Micro Days - Modern Software Developmen...Design patterns et Design Emergeant - Micro Days - Modern Software Developmen...
Design patterns et Design Emergeant - Micro Days - Modern Software Developmen...Tarik Zakaria Benmerar
 
DesignPatternsISI.pdf
DesignPatternsISI.pdfDesignPatternsISI.pdf
DesignPatternsISI.pdfandre543581
 
Cpp2 : classes et objets
Cpp2 : classes et objetsCpp2 : classes et objets
Cpp2 : classes et objetsAbdoulaye Dieng
 
UML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouriUML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouriMansouri Khalifa
 
Introduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonIntroduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonAbdoulaye Dieng
 
Formation JPA Java persistence API
Formation JPA Java persistence APIFormation JPA Java persistence API
Formation JPA Java persistence APIThibault Cuvillier
 
Formation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPFormation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPkemenaran
 
Chapitre4_ConceptionDynamique (1).pptx
Chapitre4_ConceptionDynamique (1).pptxChapitre4_ConceptionDynamique (1).pptx
Chapitre4_ConceptionDynamique (1).pptxfatmaezzahranouioui
 
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 strategyENSET, Université Hassan II Casablanca
 

Similaire à Design patterns comportementaux (20)

Cours_Java.pdf
Cours_Java.pdfCours_Java.pdf
Cours_Java.pdf
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Design patterns gof fr
Design patterns gof frDesign patterns gof fr
Design patterns gof fr
 
Qualité de code et bonnes pratiques
Qualité de code et bonnes pratiquesQualité de code et bonnes pratiques
Qualité de code et bonnes pratiques
 
Cours php & Mysql - 4éme partie
Cours php & Mysql - 4éme partieCours php & Mysql - 4éme partie
Cours php & Mysql - 4éme partie
 
Observer pattern
Observer patternObserver pattern
Observer pattern
 
Design patterns et Design Emergeant - Micro Days - Modern Software Developmen...
Design patterns et Design Emergeant - Micro Days - Modern Software Developmen...Design patterns et Design Emergeant - Micro Days - Modern Software Developmen...
Design patterns et Design Emergeant - Micro Days - Modern Software Developmen...
 
Cours uml
Cours umlCours uml
Cours uml
 
DesignPatternsISI.pdf
DesignPatternsISI.pdfDesignPatternsISI.pdf
DesignPatternsISI.pdf
 
Cpp2 : classes et objets
Cpp2 : classes et objetsCpp2 : classes et objets
Cpp2 : classes et objets
 
UML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouriUML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouri
 
Designs Patterns
Designs PatternsDesigns Patterns
Designs Patterns
 
Introduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonIntroduction à l’orienté objet en Python
Introduction à l’orienté objet en Python
 
Patrons de conception
Patrons de conceptionPatrons de conception
Patrons de conception
 
Formation JPA Java persistence API
Formation JPA Java persistence APIFormation JPA Java persistence API
Formation JPA Java persistence API
 
Les Classe en Java
Les Classe en JavaLes Classe en Java
Les Classe en Java
 
Formation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPFormation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHP
 
Chapitre4_ConceptionDynamique (1).pptx
Chapitre4_ConceptionDynamique (1).pptxChapitre4_ConceptionDynamique (1).pptx
Chapitre4_ConceptionDynamique (1).pptx
 
POO-Cours.pdf
POO-Cours.pdfPOO-Cours.pdf
POO-Cours.pdf
 
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
 

Design patterns comportementaux

  • 1. LES DESIGN PATTERNS PATTERNS COMPORTEMENTAUX PART1
  • 2. SOMMAIRE PRÉSENTATION PATTERNS COMPORTEMENTAUX • Définition LES PATTERNS • • • • • Strategy State Visitor Iterator Observer QUIZZ • Petit test à chaud :p 2
  • 4. PRÉSENTATION PATTERNS COMPORTEMENTAUX DÉFINITION + LES TROIS FAMILLES (SUIVANT LES DÉCOUPAGES…)    CONSTRUCTION STRUCTURE COMPORTEMENT + OBJECTIF  FOURNIR DES SOLUTIONS POUR DISTRIBUER LES TRAITEMENTS ET LES ALGORITHMES ENTRE LES OBJETS + MOYENS  DISTRIBUTION PAR DÉLÉGATION OU HÉRITAGE 4
  • 6. STRATEGY VUE GLOBALE PROBLÈME • Un objet doit effectuer plusieurs traitements différents, dépendant d’une variable ou d’un état DESCRIPTION • Vous avez une classe dédiée à une tâche spécifique. Dans un premier temps, celle-ci effectue une opération suivant un algorithme bien précis. Cependant, avec le temps, cette classe sera amenée à évoluer, et elle suivra plusieurs algorithmes, tout en effectuant la même tâche de base. • Ex: format(), excecute(),… SOLUTION • Délégation du traitement à une classe externe et création d’une famille d’algorithme 6
  • 11. STATE VUE GLOBALE PROBLÈME • Le comportement d’un objet est susceptible de changer en fonction de son état (on ne peut pas clôturer un compte qui n’est pas ouvert…) DESCRIPTION • Le pattern State permet à un objet d’adapter son comportement en fonction de son état interne • L’idée se représente bien par les diagrammes d’état UML SOLUTION • On délègue à des classes « état » le fait d’implémenter les différent comportement de l’objet 11
  • 13. STATE LES CLASSES StateMachine • Classe concrète décrivant des objets qui sont des machines à états. Cette classe maintient une référence sur l’interface State. State • Interface à implémenter regroupant les comportements qui sont dépendants de l’état de l’objet ConcreteState • Les classes qui implémentent State et définissent les divers comportements 13
  • 17. VISITOR VUE GLOBALE PROBLÈME • Vous voulez laissez la possibilité d’étendre le comportement de votre objet sans pour autant en modifier le code DESCRIPTION • le but est de laisser l’opportunité à des classes Visiteur d’accéder à l’instance de l’objet visiter pour modifier son comportement. • C’est un design qui est souvent associé au design pattern Composite SOLUTION • Tous les objets qui acceptent que leur comportement soit étendu propose une méthode accessible au visiteur. 17
  • 19. VISITOR LES CLASSES Visitor • définit l'interface d'une visiteur. Elle déclare les méthodes de visite des sous-classes concrètes de Element. ConcreteVisitor • sont des sous-classes concrètes de l'interface Visiteur. Elles implémentent des comportements de visite des Element. Element • définit l'interface d'une élément. Elle déclare la méthode de réception d'un objet Visiteur ConcreteElement • sont des sous-classes concrètes de l'interface Element. Elles implémentent la méthode de réception. Elles possèdent des données/attributs et méthodes différents. 19
  • 23. ITERATOR VUE GLOBALE PROBLÈME • Parcourir séquentiellement les éléments d'un objet composé. DESCRIPTION • Le système doit parcourir les éléments d'un objet complexe. La classe de l'objet complexe peut varier. • Cela est le cas des classes représentant des listes et des ensembles en Java. Elles ont une méthode retournant un itérateur, qui permet de parcourir les éléments. SOLUTION • Le Design Pattern permet d'isoler le parcours d'un agrégat dans une classe Iterator 23
  • 25. ITERATOR LES CLASSES Compose • définit l'interface d'un objet composé permettant de créer un Iterateur. ConcreteCompose • est une sous-classe de l'interface Compose. Elle est composée d'éléments et implémente la méthode de création d'un Iterateur. Iterateur • définit l'interface de l'itérateur, qui permet d'accéder aux éléments de l'objet Compose. ConcreteIterateur • est une sous-classe de l'inteface Iterateur. Elle fournit une implémentation permettant de parcourir les éléments de ConcreteCompose. Elle conserve la trace de la position courante. 25
  • 26. ITERATOR EXEMPLE CODE + http://www.avajava.com/tutorials/lessons/iterator-pattern.html + http://blog.zenika.com/index.php?post/2010/10/31/Au-coeur-du-JDK-%3A-linterface-Iterable 26
  • 28. OBSERVER VUE GLOBALE PROBLÈME • Des objets dépendent de l’état d’un autre objet et veulent être notifié d’un changement d’état de ce dernier DESCRIPTION • Le pattern Obserever a pour objectif de construire une dépendance entre un sujet et des observateurs de sorte que chaque modification du sujet soit notifiée aux observateurs afin qu’il puissent mettre à jour leur état. • Ex: Listener Swing,… SOLUTION • Ajouter une méthode update à tous les Observer et gérer une liste d’Observer au niveau du Sujet 28
  • 30. OBSERVER LES CLASSES Subject • Classe abstraite qui introduit l’association avec les Observers Observer • Interface à implémenter pour recevoir des notifications ConcreteSubject • Classe d’implémentation d’un Subject. C’est lui qui envoie une notif quand son état est modifié ConcreteObserver • Maintient une référence vers le subject et implémente la méthode update(). Elle peut aussi demandé des infos au Subject sur son état. 30
  • 32. QUIZZ
  • 33. QUIZZ TEST À CHAUD  Q: Quel Objet ne fait pas partie du Design Pattern Iterator: 1. Iterator 2. ConcreteIterator 3. Aggregate 4. Invoker © SQLI GROUP 33
  • 34. QUIZZ TEST À CHAUD  Q: Quel Objet ne fait pas partie du Design Pattern Observer: 1. Observer 2. Subject 3. ConcreteSubject 4. Observed © SQLI GROUP 34
  • 35. QUIZZ TEST À CHAUD  Q: Quel Objet ne fait pas partie du Design Pattern State: 1. ConcretStrategyA 2. Subject 3. ConcretStrategyB 4. Strategy © SQLI GROUP 35
  • 36. QUIZZ TEST À CHAUD  Q: Quel est le Design Pattern qui défini une famille d’algorithme, les encapsule et rend chacun interchangeables. Permettant à l’algo de changer indépendamment du client qui l’utilise ? 1. State 2. Strategy 3. Observer 4. Visitor © SQLI GROUP 36
  • 37. LES DESIGN PATTERNS – PART1 QUESTIONS / REPONSES 37