SlideShare une entreprise Scribd logo
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Institut Africain d’Informatique
Etablissement Inter-Etats d’Enseignement Supérieur
B.P. 2263 Libreville-GABON
www.iai-siege.com
Design Pattern
Exposé de Génie Logiciel
Koffi SANI
Seigneuret MIEHAKANDA
Benjamin KEDA
Supervisé par :
Dr Roger NOUSSI
2`eme Année Ingénieur
Année académique 2012-2013
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 1 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Sommaire
1 Introduction
Historique
Motivation
Obervations
2 Défintion des Design Patterns
3 Objectifs des Design Patterns
4 Intérêt des Design Patterns
5 Constitution
6 Les différents types de Design Patterns
7 Présentation de quelques Design Patterns
Pattern Iterator
Pattern Observer
Application du Design Pattern Observer en Java
8 Conclusion
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 2 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Historique Motivation Obervations
Plan de l’exposé
1 Introduction
Historique
Motivation
Obervations
2 Défintion des Design Patterns
3 Objectifs des Design Patterns
4 Intérêt des Design Patterns
5 Constitution
6 Les différents types de Design Patterns
7 Présentation de quelques Design Patterns
Pattern Iterator
Pattern Observer
Application du Design Pattern Observer en Java
8 Conclusion
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 3 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Historique Motivation Obervations
Les principaux acteurs des Design Patterns
Les Design Patterns
1970 : Alexander Christopher
1995 : formalisation dans le livre du «Gang of Four» (GoF) :
Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
«Design Patterns - Elements of reusable Object-Oriented Software»
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 4 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Historique Motivation Obervations
Les principaux acteurs des Design Patterns
Les Design Patterns
1970 : Alexander Christopher
1995 : formalisation dans le livre du «Gang of Four» (GoF) :
Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
«Design Patterns - Elements of reusable Object-Oriented Software»
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 4 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Historique Motivation Obervations
Motivation
Difficulté de développement des logiciels efficaces,
robustes, extensibles et réutilisables ;
Nécessité de comprendre les techniques bien éprouvées, qui ont déjà montré leur
capacité à résoudre des problèmes de développent récurrents ;
Les Patrons de Conception («Design Patterns») sont des canevas («frameworks»)
qui aident à saisir, spécifier et mettre en œuvre ces techniques éprouvées.
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 5 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Historique Motivation Obervations
Motivation
Difficulté de développement des logiciels efficaces, robustes, extensibles
et réutilisables ;
Nécessité de comprendre les techniques bien
éprouvées, qui ont déjà montré leur capacité à
résoudre des problèmes de développent
récurrents ;
Les Patrons de Conception («Design Patterns») sont des canevas («frameworks»)
qui aident à saisir, spécifier et mettre en œuvre ces techniques éprouvées.
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 5 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Historique Motivation Obervations
Motivation
Difficulté de développement des logiciels efficaces, robustes, extensibles
et réutilisables ;
Nécessité de comprendre les techniques bien éprouvées, qui ont déjà
montré leur capacité à résoudre des problèmes de développent
récurrents ;
Les Patrons de Conception («Design Patterns»)
sont des canevas («frameworks») qui aident à
saisir, spécifier et mettre en œuvre ces techniques
éprouvées.
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 5 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Historique Motivation Obervations
Observations
Observations
Problèmes largement indépendants des applications .
Ex : logiciel réparti - problème de communication, tolérance aux fautes,
gestion de la concurrence, initialisation des services.
Les bons développeurs résolvent ces problèmes en s’appuyant sur les
Design Patterns appropriés
Par contre, ces patrons de conception ont été traditionnellement :
Implicites dans les connaissances des experts
Mélangés avec le code source des applications
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 6 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Historique Motivation Obervations
Observations
Observations
Problèmes largement indépendants des applications .
Ex : logiciel réparti - problème de communication, tolérance aux fautes,
gestion de la concurrence, initialisation des services.
Les bons développeurs résolvent ces problèmes en s’appuyant sur les
Design Patterns appropriés
Par contre, ces patrons de conception ont été traditionnellement :
Implicites dans les connaissances des experts
Mélangés avec le code source des applications
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 6 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Historique Motivation Obervations
Observations
Observations
Problèmes largement indépendants des applications .
Ex : logiciel réparti - problème de communication, tolérance aux fautes,
gestion de la concurrence, initialisation des services.
Les bons développeurs résolvent ces problèmes en s’appuyant sur les
Design Patterns appropriés
Par contre, ces patrons de conception ont été traditionnellement :
Implicites dans les connaissances des experts
Mélangés avec le code source des applications
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 6 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Plan de l’exposé
1 Introduction
Historique
Motivation
Obervations
2 Défintion des Design Patterns
3 Objectifs des Design Patterns
4 Intérêt des Design Patterns
5 Constitution
6 Les différents types de Design Patterns
7 Présentation de quelques Design Patterns
Pattern Iterator
Pattern Observer
Application du Design Pattern Observer en Java
8 Conclusion
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 7 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Définition
Définition des Design Patterns
Un Design Pattern encore appelé patron / motif / modèle de conception est :
une solution réutilisable à un problème récurent de conception logicielle,
dans un certain cas ;
la documentation d’une expérience de conception validée par la
spécification d’une architecture réutilisable ;
un concept de génie logiciel, associé (la plupart du temps) avec la
programmation orientée objet.
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 8 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Définition
Définition des Design Patterns
Un Design Pattern encore appelé patron / motif / modèle de conception est :
une solution réutilisable à un problème récurent de conception
logicielle, dans un certain cas ;
la documentation d’une expérience de conception validée par la
spécification d’une architecture réutilisable ;
un concept de génie logiciel, associé (la plupart du temps) avec la
programmation orientée objet.
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 8 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Définition
Définition des Design Patterns
Un Design Pattern encore appelé patron / motif / modèle de conception est :
une solution réutilisable à un problème récurent de conception logicielle,
dans un certain cas ;
la documentation d’une expérience de conception validée par la
spécification d’une architecture réutilisable ;
un concept de génie logiciel, associé (la plupart du temps) avec la
programmation orientée objet.
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 8 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Définition
Définition des Design Patterns
Un Design Pattern encore appelé patron / motif / modèle de conception est :
une solution réutilisable à un problème récurent de conception logicielle,
dans un certain cas ;
la documentation d’une expérience de conception validée par la
spécification d’une architecture réutilisable ;
un concept de génie logiciel, associé (la plupart du temps) avec la
programmation orientée objet.
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 8 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Plan de l’exposé
1 Introduction
Historique
Motivation
Obervations
2 Défintion des Design Patterns
3 Objectifs des Design Patterns
4 Intérêt des Design Patterns
5 Constitution
6 Les différents types de Design Patterns
7 Présentation de quelques Design Patterns
Pattern Iterator
Pattern Observer
Application du Design Pattern Observer en Java
8 Conclusion
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 9 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Objectif des Design Patterns
Abstraction de la conception globale du système
Indépendance des composants de leur implantation
Définition d’un vocabulaire commun aux acteurs de l’écriture d’un
logiciel.
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 10 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Objectif des Design Patterns
Abstraction de la conception globale du système
Indépendance des composants de leur implantation
Définition d’un vocabulaire commun aux acteurs de l’écriture d’un
logiciel.
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 10 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Objectif des Design Patterns
Abstraction de la conception globale du système
Indépendance des composants de leur implantation
Définition d’un vocabulaire commun aux acteurs de l’écriture d’un
logiciel.
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 10 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Plan de l’exposé
1 Introduction
Historique
Motivation
Obervations
2 Défintion des Design Patterns
3 Objectifs des Design Patterns
4 Intérêt des Design Patterns
5 Constitution
6 Les différents types de Design Patterns
7 Présentation de quelques Design Patterns
Pattern Iterator
Pattern Observer
Application du Design Pattern Observer en Java
8 Conclusion
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 11 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Intérêt des Design Patterns
Aide au développement de logiciels : réutilisation de l’expérience
collective des ingénieurs expérimentés en informatique
Aide à promouvoir les bonnes pratiques de conception, en capturant les
expériences existantes et bien validées en développement logiciel
Aide à la gestion de la complexité du logiciel
Facilite la communication entre les développeurs
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 12 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Intérêt des Design Patterns
Aide au développement de logiciels : réutilisation de l’expérience
collective des ingénieurs expérimentés en informatique
Aide à promouvoir les bonnes pratiques de conception, en capturant
les expériences existantes et bien validées en développement logiciel
Aide à la gestion de la complexité du logiciel
Facilite la communication entre les développeurs
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 12 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Intérêt des Design Patterns
Aide au développement de logiciels : réutilisation de l’expérience
collective des ingénieurs expérimentés en informatique
Aide à promouvoir les bonnes pratiques de conception, en capturant les
expériences existantes et bien validées en développement logiciel
Aide à la gestion de la complexité du logiciel
Facilite la communication entre les développeurs
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 12 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Intérêt des Design Patterns
Aide au développement de logiciels : réutilisation de l’expérience
collective des ingénieurs expérimentés en informatique
Aide à promouvoir les bonnes pratiques de conception, en capturant les
expériences existantes et bien validées en développement logiciel
Aide à la gestion de la complexité du logiciel
Facilite la communication entre les développeurs
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 12 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Plan de l’exposé
1 Introduction
Historique
Motivation
Obervations
2 Défintion des Design Patterns
3 Objectifs des Design Patterns
4 Intérêt des Design Patterns
5 Constitution
6 Les différents types de Design Patterns
7 Présentation de quelques Design Patterns
Pattern Iterator
Pattern Observer
Application du Design Pattern Observer en Java
8 Conclusion
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 13 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Constitution d’un design pattern
Un design pattern est défini par :
un contexte : une situation qui engendre le problème
un problème : le problème récurrent qui apparaît dans ce contexte
une solution : une résolution validée du problème
Un design pattern extrait les aspects statiques et dynamiques de la
structure et de la coopération entre les participants clés de la conception
d’application
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 14 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Constitution d’un design pattern
Un design pattern est défini par :
un contexte : une situation qui engendre le problème
un problème : le problème récurrent qui apparaît dans ce contexte
une solution : une résolution validée du problème
Un design pattern extrait les aspects statiques et dynamiques de la
structure et de la coopération entre les participants clés de la conception
d’application
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 14 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Constitution d’un design pattern
Un design pattern est défini par :
un contexte : une situation qui engendre le problème
un problème : le problème récurrent qui apparaît dans ce contexte
une solution : une résolution validée du problème
Un design pattern extrait les aspects statiques et dynamiques de la
structure et de la coopération entre les participants clés de la conception
d’application
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 14 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Constitution d’un design pattern
Un design pattern est défini par :
un contexte : une situation qui engendre le problème
un problème : le problème récurrent qui apparaît dans ce contexte
une solution : une résolution validée du problème
Un design pattern extrait les aspects statiques et dynamiques de la
structure et de la coopération entre les participants clés de la conception
d’application
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 14 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Constitution d’un design pattern
Un design pattern est défini par :
un contexte : une situation qui engendre le problème
un problème : le problème récurrent qui apparaît dans ce contexte
une solution : une résolution validée du problème
Un design pattern extrait les aspects statiques et dynamiques de la
structure et de la coopération entre les participants clés de la conception
d’application
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 14 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Constitution d’un design pattern
Un design pattern est défini par :
un contexte : une situation qui engendre le problème
un problème : le problème récurrent qui apparaît dans ce contexte
une solution : une résolution validée du problème
Un design pattern extrait les aspects statiques et dynamiques de la
structure et de la coopération entre les participants clés de la conception
d’application
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 14 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Plan de l’exposé
1 Introduction
Historique
Motivation
Obervations
2 Défintion des Design Patterns
3 Objectifs des Design Patterns
4 Intérêt des Design Patterns
5 Constitution
6 Les différents types de Design Patterns
7 Présentation de quelques Design Patterns
Pattern Iterator
Pattern Observer
Application du Design Pattern Observer en Java
8 Conclusion
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 15 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Les grands groupes de Design Patterns
3 grands groupes de Design patterns
Patterns de création : Abstract Factory, Builder, FactoryMethod,
Prototype, Singleton
Patterns structurels : Adapter, Brigde, Composite, Decorator, Facade,
Flyweight, Proxy
Patterns de comportement : Chaine de responsabilité, Command,
Intepreter, Iterator, Mediator, Memento, Observer, State, Strategy,
Template method, Visitor
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 16 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Les grands groupes de Design Patterns
3 grands groupes de Design patterns
Patterns de création : Abstract Factory, Builder, FactoryMethod,
Prototype, Singleton
Patterns structurels : Adapter, Brigde, Composite, Decorator, Facade,
Flyweight, Proxy
Patterns de comportement : Chaine de responsabilité, Command,
Intepreter, Iterator, Mediator, Memento, Observer, State, Strategy,
Template method, Visitor
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 16 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Les grands groupes de Design Patterns
3 grands groupes de Design patterns
Patterns de création : Abstract Factory, Builder, FactoryMethod,
Prototype, Singleton
Patterns structurels : Adapter, Brigde, Composite, Decorator, Facade,
Flyweight, Proxy
Patterns de comportement : Chaine de responsabilité, Command,
Intepreter, Iterator, Mediator, Memento, Observer, State, Strategy,
Template method, Visitor
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 16 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Les grands groupes de Design Patterns
3 grands groupes de Design patterns
Patterns de création : Abstract Factory, Builder, FactoryMethod,
Prototype, Singleton
Patterns structurels : Adapter, Brigde, Composite, Decorator, Facade,
Flyweight, Proxy
Patterns de comportement : Chaine de responsabilité, Command,
Intepreter, Iterator, Mediator, Memento, Observer, State, Strategy,
Template method, Visitor
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 16 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Pattern Iterator Pattern Observer Application en Java
Plan de l’exposé
1 Introduction
Historique
Motivation
Obervations
2 Défintion des Design Patterns
3 Objectifs des Design Patterns
4 Intérêt des Design Patterns
5 Constitution
6 Les différents types de Design Patterns
7 Présentation de quelques Design Patterns
Pattern Iterator
Pattern Observer
Application du Design Pattern Observer en Java
8 Conclusion
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 17 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Pattern Iterator Pattern Observer Application en Java
Pattern Iterator
Pattern Iterator : on veut pouvoir accéder séquentiellement à un agrégat
d’objets sans avoir à en connaître la structure interne
Un Iterator, fourni par l’agrégat, permet de se positionner en début d’agrégat
et d’avancer par pas dans cet agrégat.
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 18 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Pattern Iterator Pattern Observer Application en Java
 ¨§ ¤
public abstract c l a s s MareesNoires {
. . .
public abstract I t e r a t o r c r e a t e I t e r a t o r ( ) ;
}
 ©¦ ¥
 ¨§ ¤
public interface I t e r a t o r {
public Object f i r s t ( ) ;
public Object next ( ) ;
public boolean isDone ( ) ;
public Object currentItem ( ) ;
}
 ©¦ ¥
 ¨§ ¤
public c l a s s MareesNoiresEnBretagne extends
MareesNoires {
. . .
public MNIterator c r e a t e I t e r a t o r ( ) { . . . }
}
 ©¦ ¥
 ¨§ ¤
public c l a s s MNIterator {
public Object f i r s t ( ) ;
public Object next ( ) ;
public boolean isDone ( ) ;
public Object currentItem ( ) ;
}
 ©¦ ¥
 ¨§ ¤
MareesNoiresEnBretagne mnb=new MareesNoiresEnBretagne ( ) ;
for ( I t e r a t o r i=mnb. c r e a t e I t e r a t o r ( ) ; ! i . isDone ( ) ; ) {
MareeNoire mn=i . next ( ) ;
mn. nettoyer ( ) ;
}
 ©¦ ¥
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 19 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Pattern Iterator Pattern Observer Application en Java
Pattern Observer
Pattern Observer : permet de faire répercuter le changement d’état d’un objet
sur d’autres dépendant de lui. Gestion dynamique de cette dépendance (ajout
et suppression de dépendances sans toucher au code).
L’objet observé (Observable) gère une liste d’observateurs (Observer) dotés
d’une méthode de mise à jour.
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 19 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Pattern Iterator Pattern Observer Application en Java
 ¨§ ¤
public c l a s s Observable {
private List listeObservers ;
. . . .
public void addObserver ( Observer o ) { . . . }
public void removeObserver ( Observer o ) { . . . }
public void notify ( Object o ) {
for ( I t e r a t o r i=listeObservers .
i t e r a t o r ( ) ; i . hasNext ( ) ; )
( ( Observer ) i . next ( ) ) .
update ( o ) ;
}
}
 ©¦ ¥
 ¨§ ¤
public interface Observer {
public void update ( Object o ) ;
}
 ©¦ ¥
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 19 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Pattern Iterator Pattern Observer Application en Java
 ¨§ ¤
public c l a s s TrouDansCoucheOzone extends Observable
{
private List listeObservers ;
private int tailleTrou ;
. . .
public void addObserver ( Observer o ) { . . . }
public void removeObserver ( Observer o ) { . . . }
public void notify ( ) {
for ( I t e r a t o r i=listeObservers .
i t e r a t o r ( ) ; i . hasNext ( ) ; )
( ( Observer ) i . next ( ) ) .
update (new Integer (
tailleTrou ) ) ;
}
public void setTailleTrou ( int t ) {
this . tailleTrou=t ;
this . notify ( ) ;
}
}
 ©¦ ¥
 ¨§ ¤
public c l a s s VacancierSurLaPlage implements
Observer {
. . .
public void update ( Integer t ) {
// rajouter ou enlever de la creme
s o l a i r e selon la t a i l l e du
trou dans la couche d ’ ozone
}
}
 ©¦ ¥
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 19 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Pattern Iterator Pattern Observer Application en Java
Application
Observer et Observable en Java
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 20 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Plan de l’exposé
1 Introduction
Historique
Motivation
Obervations
2 Défintion des Design Patterns
3 Objectifs des Design Patterns
4 Intérêt des Design Patterns
5 Constitution
6 Les différents types de Design Patterns
7 Présentation de quelques Design Patterns
Pattern Iterator
Pattern Observer
Application du Design Pattern Observer en Java
8 Conclusion
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 21 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Solutions à des problèmes récurrents ;
La compréhension des principes des Design Patterns aide à comprendre leur
fonctionnement et utilisation ;
Une bonne conception repose sur l’identification des objectifs et priorités ;
Ne sont pas des solutions magiques, mais un important outil de conception.
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 22 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Solutions à des problèmes récurrents ;
La compréhension des principes des Design
Patterns aide à comprendre leur fonctionnement et
utilisation ;
Une bonne conception repose sur l’identification des objectifs et priorités ;
Ne sont pas des solutions magiques, mais un important outil de conception.
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 22 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Solutions à des problèmes récurrents ;
La compréhension des principes des Design Patterns aide à comprendre
leur fonctionnement et utilisation ;
Une bonne conception repose sur l’identification
des objectifs et priorités ;
Ne sont pas des solutions magiques, mais un important outil de conception.
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 22 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
Solutions à des problèmes récurrents ;
La compréhension des principes des Design Patterns aide à comprendre
leur fonctionnement et utilisation ;
Une bonne conception repose sur l’identification des objectifs et
priorités ;
Ne sont pas des solutions magiques, mais un
important outil de conception.
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 22 / 23
Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion
K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 23 / 23

Contenu connexe

Tendances

La spécification des besoins
La spécification des besoinsLa spécification des besoins
La spécification des besoins
Ismahen Traya
 
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Sofien Benrhouma
 
Rapport de projet_de_fin_d__tudes__pfe__safwen (8)
Rapport de projet_de_fin_d__tudes__pfe__safwen (8)Rapport de projet_de_fin_d__tudes__pfe__safwen (8)
Rapport de projet_de_fin_d__tudes__pfe__safwen (8)
safwenbenfredj
 
rapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSATrapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSAT
Siwar GUEMRI
 
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Riadh K.
 
RapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRITRapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRIT
Lina Meddeb
 

Tendances (20)

La spécification des besoins
La spécification des besoinsLa spécification des besoins
La spécification des besoins
 
Rapport stage pfe
Rapport stage  pfe Rapport stage  pfe
Rapport stage pfe
 
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
 
Rapport de projet de conception et de développement
Rapport de projet de conception et de développementRapport de projet de conception et de développement
Rapport de projet de conception et de développement
 
Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...
 
Projet de fin d'etude sur le parc informatique
Projet  de fin d'etude sur le parc informatiqueProjet  de fin d'etude sur le parc informatique
Projet de fin d'etude sur le parc informatique
 
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka StreamsTraitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
 
Projet décisionnel
Projet décisionnelProjet décisionnel
Projet décisionnel
 
Rapport de projet_de_fin_d__tudes__pfe__safwen (8)
Rapport de projet_de_fin_d__tudes__pfe__safwen (8)Rapport de projet_de_fin_d__tudes__pfe__safwen (8)
Rapport de projet_de_fin_d__tudes__pfe__safwen (8)
 
Architectures n-tiers
Architectures n-tiersArchitectures n-tiers
Architectures n-tiers
 
Rapport de stage du fin d'étude
Rapport de stage du fin d'étudeRapport de stage du fin d'étude
Rapport de stage du fin d'étude
 
rapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSATrapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSAT
 
Rapport pfe talan_2018_donia_hammami
Rapport pfe talan_2018_donia_hammamiRapport pfe talan_2018_donia_hammami
Rapport pfe talan_2018_donia_hammami
 
Pfe conception et réalisation d'une application de gestion des processus d'ac...
Pfe conception et réalisation d'une application de gestion des processus d'ac...Pfe conception et réalisation d'une application de gestion des processus d'ac...
Pfe conception et réalisation d'une application de gestion des processus d'ac...
 
diagramme de séquence UML
diagramme de séquence UMLdiagramme de séquence UML
diagramme de séquence UML
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...
CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...
CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...
 
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
 
Présentation cloud computing
Présentation cloud computingPrésentation cloud computing
Présentation cloud computing
 
RapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRITRapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRIT
 

Similaire à Design Patterns

Presentation pfe 2012
Presentation pfe 2012Presentation pfe 2012
Presentation pfe 2012
Sellami Ahmed
 
memoire Nathanael Delahaye
memoire Nathanael Delahayememoire Nathanael Delahaye
memoire Nathanael Delahaye
Nathana Delahaye
 

Similaire à Design Patterns (20)

Introduction of the most important design pattern
Introduction of the most important design patternIntroduction of the most important design pattern
Introduction of the most important design pattern
 
La gestion de projets nouveaux médias
La gestion de projets nouveaux médiasLa gestion de projets nouveaux médias
La gestion de projets nouveaux médias
 
Lmo02.ppt
Lmo02.pptLmo02.ppt
Lmo02.ppt
 
Projet+com02.ppt
Projet+com02.pptProjet+com02.ppt
Projet+com02.ppt
 
Optimiser son workflow frontend
Optimiser son workflow frontendOptimiser son workflow frontend
Optimiser son workflow frontend
 
Diapo PFE
Diapo PFEDiapo PFE
Diapo PFE
 
Le rôle de l'analyste d'affaires et la place de la documentation dans un proc...
Le rôle de l'analyste d'affaires et la place de la documentation dans un proc...Le rôle de l'analyste d'affaires et la place de la documentation dans un proc...
Le rôle de l'analyste d'affaires et la place de la documentation dans un proc...
 
2UNL - PARISWEB 2010
2UNL - PARISWEB 20102UNL - PARISWEB 2010
2UNL - PARISWEB 2010
 
Design thinking et Agilité
Design thinking et AgilitéDesign thinking et Agilité
Design thinking et Agilité
 
Presentation pfe 2012
Presentation pfe 2012Presentation pfe 2012
Presentation pfe 2012
 
Etude design et_brevet_mars 2011
Etude design et_brevet_mars 2011Etude design et_brevet_mars 2011
Etude design et_brevet_mars 2011
 
memoire Nathanael Delahaye
memoire Nathanael Delahayememoire Nathanael Delahaye
memoire Nathanael Delahaye
 
UML Part1-Introduction Mansouri
UML Part1-Introduction MansouriUML Part1-Introduction Mansouri
UML Part1-Introduction Mansouri
 
Vers une approche praxéologique du design
Vers une approche praxéologique du designVers une approche praxéologique du design
Vers une approche praxéologique du design
 
L'architecture de l'information
L'architecture de l'informationL'architecture de l'information
L'architecture de l'information
 
Le rôle de l’architecte Agile - Mathieu Boisvert
Le rôle de l’architecte Agile - Mathieu BoisvertLe rôle de l’architecte Agile - Mathieu Boisvert
Le rôle de l’architecte Agile - Mathieu Boisvert
 
Guide des metiers du design interactif 2015 par Aquent et *designers interact...
Guide des metiers du design interactif 2015 par Aquent et *designers interact...Guide des metiers du design interactif 2015 par Aquent et *designers interact...
Guide des metiers du design interactif 2015 par Aquent et *designers interact...
 
Le Design thinking by EnjoyDigitAll
Le Design thinking by EnjoyDigitAllLe Design thinking by EnjoyDigitAll
Le Design thinking by EnjoyDigitAll
 
Sos ikm-6 juin2008
Sos ikm-6 juin2008Sos ikm-6 juin2008
Sos ikm-6 juin2008
 
Club Urba-EA - Architecture d'entreprise et projets agiles
Club Urba-EA - Architecture d'entreprise et projets agilesClub Urba-EA - Architecture d'entreprise et projets agiles
Club Urba-EA - Architecture d'entreprise et projets agiles
 

Design Patterns

  • 1. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Institut Africain d’Informatique Etablissement Inter-Etats d’Enseignement Supérieur B.P. 2263 Libreville-GABON www.iai-siege.com Design Pattern Exposé de Génie Logiciel Koffi SANI Seigneuret MIEHAKANDA Benjamin KEDA Supervisé par : Dr Roger NOUSSI 2`eme Année Ingénieur Année académique 2012-2013 K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 1 / 23
  • 2. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Sommaire 1 Introduction Historique Motivation Obervations 2 Défintion des Design Patterns 3 Objectifs des Design Patterns 4 Intérêt des Design Patterns 5 Constitution 6 Les différents types de Design Patterns 7 Présentation de quelques Design Patterns Pattern Iterator Pattern Observer Application du Design Pattern Observer en Java 8 Conclusion K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 2 / 23
  • 3. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Historique Motivation Obervations Plan de l’exposé 1 Introduction Historique Motivation Obervations 2 Défintion des Design Patterns 3 Objectifs des Design Patterns 4 Intérêt des Design Patterns 5 Constitution 6 Les différents types de Design Patterns 7 Présentation de quelques Design Patterns Pattern Iterator Pattern Observer Application du Design Pattern Observer en Java 8 Conclusion K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 3 / 23
  • 4. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Historique Motivation Obervations Les principaux acteurs des Design Patterns Les Design Patterns 1970 : Alexander Christopher 1995 : formalisation dans le livre du «Gang of Four» (GoF) : Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides «Design Patterns - Elements of reusable Object-Oriented Software» K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 4 / 23
  • 5. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Historique Motivation Obervations Les principaux acteurs des Design Patterns Les Design Patterns 1970 : Alexander Christopher 1995 : formalisation dans le livre du «Gang of Four» (GoF) : Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides «Design Patterns - Elements of reusable Object-Oriented Software» K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 4 / 23
  • 6. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Historique Motivation Obervations Motivation Difficulté de développement des logiciels efficaces, robustes, extensibles et réutilisables ; Nécessité de comprendre les techniques bien éprouvées, qui ont déjà montré leur capacité à résoudre des problèmes de développent récurrents ; Les Patrons de Conception («Design Patterns») sont des canevas («frameworks») qui aident à saisir, spécifier et mettre en œuvre ces techniques éprouvées. K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 5 / 23
  • 7. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Historique Motivation Obervations Motivation Difficulté de développement des logiciels efficaces, robustes, extensibles et réutilisables ; Nécessité de comprendre les techniques bien éprouvées, qui ont déjà montré leur capacité à résoudre des problèmes de développent récurrents ; Les Patrons de Conception («Design Patterns») sont des canevas («frameworks») qui aident à saisir, spécifier et mettre en œuvre ces techniques éprouvées. K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 5 / 23
  • 8. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Historique Motivation Obervations Motivation Difficulté de développement des logiciels efficaces, robustes, extensibles et réutilisables ; Nécessité de comprendre les techniques bien éprouvées, qui ont déjà montré leur capacité à résoudre des problèmes de développent récurrents ; Les Patrons de Conception («Design Patterns») sont des canevas («frameworks») qui aident à saisir, spécifier et mettre en œuvre ces techniques éprouvées. K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 5 / 23
  • 9. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Historique Motivation Obervations Observations Observations Problèmes largement indépendants des applications . Ex : logiciel réparti - problème de communication, tolérance aux fautes, gestion de la concurrence, initialisation des services. Les bons développeurs résolvent ces problèmes en s’appuyant sur les Design Patterns appropriés Par contre, ces patrons de conception ont été traditionnellement : Implicites dans les connaissances des experts Mélangés avec le code source des applications K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 6 / 23
  • 10. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Historique Motivation Obervations Observations Observations Problèmes largement indépendants des applications . Ex : logiciel réparti - problème de communication, tolérance aux fautes, gestion de la concurrence, initialisation des services. Les bons développeurs résolvent ces problèmes en s’appuyant sur les Design Patterns appropriés Par contre, ces patrons de conception ont été traditionnellement : Implicites dans les connaissances des experts Mélangés avec le code source des applications K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 6 / 23
  • 11. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Historique Motivation Obervations Observations Observations Problèmes largement indépendants des applications . Ex : logiciel réparti - problème de communication, tolérance aux fautes, gestion de la concurrence, initialisation des services. Les bons développeurs résolvent ces problèmes en s’appuyant sur les Design Patterns appropriés Par contre, ces patrons de conception ont été traditionnellement : Implicites dans les connaissances des experts Mélangés avec le code source des applications K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 6 / 23
  • 12. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Plan de l’exposé 1 Introduction Historique Motivation Obervations 2 Défintion des Design Patterns 3 Objectifs des Design Patterns 4 Intérêt des Design Patterns 5 Constitution 6 Les différents types de Design Patterns 7 Présentation de quelques Design Patterns Pattern Iterator Pattern Observer Application du Design Pattern Observer en Java 8 Conclusion K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 7 / 23
  • 13. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Définition Définition des Design Patterns Un Design Pattern encore appelé patron / motif / modèle de conception est : une solution réutilisable à un problème récurent de conception logicielle, dans un certain cas ; la documentation d’une expérience de conception validée par la spécification d’une architecture réutilisable ; un concept de génie logiciel, associé (la plupart du temps) avec la programmation orientée objet. K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 8 / 23
  • 14. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Définition Définition des Design Patterns Un Design Pattern encore appelé patron / motif / modèle de conception est : une solution réutilisable à un problème récurent de conception logicielle, dans un certain cas ; la documentation d’une expérience de conception validée par la spécification d’une architecture réutilisable ; un concept de génie logiciel, associé (la plupart du temps) avec la programmation orientée objet. K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 8 / 23
  • 15. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Définition Définition des Design Patterns Un Design Pattern encore appelé patron / motif / modèle de conception est : une solution réutilisable à un problème récurent de conception logicielle, dans un certain cas ; la documentation d’une expérience de conception validée par la spécification d’une architecture réutilisable ; un concept de génie logiciel, associé (la plupart du temps) avec la programmation orientée objet. K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 8 / 23
  • 16. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Définition Définition des Design Patterns Un Design Pattern encore appelé patron / motif / modèle de conception est : une solution réutilisable à un problème récurent de conception logicielle, dans un certain cas ; la documentation d’une expérience de conception validée par la spécification d’une architecture réutilisable ; un concept de génie logiciel, associé (la plupart du temps) avec la programmation orientée objet. K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 8 / 23
  • 17. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Plan de l’exposé 1 Introduction Historique Motivation Obervations 2 Défintion des Design Patterns 3 Objectifs des Design Patterns 4 Intérêt des Design Patterns 5 Constitution 6 Les différents types de Design Patterns 7 Présentation de quelques Design Patterns Pattern Iterator Pattern Observer Application du Design Pattern Observer en Java 8 Conclusion K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 9 / 23
  • 18. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Objectif des Design Patterns Abstraction de la conception globale du système Indépendance des composants de leur implantation Définition d’un vocabulaire commun aux acteurs de l’écriture d’un logiciel. K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 10 / 23
  • 19. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Objectif des Design Patterns Abstraction de la conception globale du système Indépendance des composants de leur implantation Définition d’un vocabulaire commun aux acteurs de l’écriture d’un logiciel. K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 10 / 23
  • 20. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Objectif des Design Patterns Abstraction de la conception globale du système Indépendance des composants de leur implantation Définition d’un vocabulaire commun aux acteurs de l’écriture d’un logiciel. K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 10 / 23
  • 21. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Plan de l’exposé 1 Introduction Historique Motivation Obervations 2 Défintion des Design Patterns 3 Objectifs des Design Patterns 4 Intérêt des Design Patterns 5 Constitution 6 Les différents types de Design Patterns 7 Présentation de quelques Design Patterns Pattern Iterator Pattern Observer Application du Design Pattern Observer en Java 8 Conclusion K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 11 / 23
  • 22. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Intérêt des Design Patterns Aide au développement de logiciels : réutilisation de l’expérience collective des ingénieurs expérimentés en informatique Aide à promouvoir les bonnes pratiques de conception, en capturant les expériences existantes et bien validées en développement logiciel Aide à la gestion de la complexité du logiciel Facilite la communication entre les développeurs K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 12 / 23
  • 23. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Intérêt des Design Patterns Aide au développement de logiciels : réutilisation de l’expérience collective des ingénieurs expérimentés en informatique Aide à promouvoir les bonnes pratiques de conception, en capturant les expériences existantes et bien validées en développement logiciel Aide à la gestion de la complexité du logiciel Facilite la communication entre les développeurs K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 12 / 23
  • 24. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Intérêt des Design Patterns Aide au développement de logiciels : réutilisation de l’expérience collective des ingénieurs expérimentés en informatique Aide à promouvoir les bonnes pratiques de conception, en capturant les expériences existantes et bien validées en développement logiciel Aide à la gestion de la complexité du logiciel Facilite la communication entre les développeurs K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 12 / 23
  • 25. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Intérêt des Design Patterns Aide au développement de logiciels : réutilisation de l’expérience collective des ingénieurs expérimentés en informatique Aide à promouvoir les bonnes pratiques de conception, en capturant les expériences existantes et bien validées en développement logiciel Aide à la gestion de la complexité du logiciel Facilite la communication entre les développeurs K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 12 / 23
  • 26. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Plan de l’exposé 1 Introduction Historique Motivation Obervations 2 Défintion des Design Patterns 3 Objectifs des Design Patterns 4 Intérêt des Design Patterns 5 Constitution 6 Les différents types de Design Patterns 7 Présentation de quelques Design Patterns Pattern Iterator Pattern Observer Application du Design Pattern Observer en Java 8 Conclusion K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 13 / 23
  • 27. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Constitution d’un design pattern Un design pattern est défini par : un contexte : une situation qui engendre le problème un problème : le problème récurrent qui apparaît dans ce contexte une solution : une résolution validée du problème Un design pattern extrait les aspects statiques et dynamiques de la structure et de la coopération entre les participants clés de la conception d’application K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 14 / 23
  • 28. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Constitution d’un design pattern Un design pattern est défini par : un contexte : une situation qui engendre le problème un problème : le problème récurrent qui apparaît dans ce contexte une solution : une résolution validée du problème Un design pattern extrait les aspects statiques et dynamiques de la structure et de la coopération entre les participants clés de la conception d’application K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 14 / 23
  • 29. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Constitution d’un design pattern Un design pattern est défini par : un contexte : une situation qui engendre le problème un problème : le problème récurrent qui apparaît dans ce contexte une solution : une résolution validée du problème Un design pattern extrait les aspects statiques et dynamiques de la structure et de la coopération entre les participants clés de la conception d’application K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 14 / 23
  • 30. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Constitution d’un design pattern Un design pattern est défini par : un contexte : une situation qui engendre le problème un problème : le problème récurrent qui apparaît dans ce contexte une solution : une résolution validée du problème Un design pattern extrait les aspects statiques et dynamiques de la structure et de la coopération entre les participants clés de la conception d’application K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 14 / 23
  • 31. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Constitution d’un design pattern Un design pattern est défini par : un contexte : une situation qui engendre le problème un problème : le problème récurrent qui apparaît dans ce contexte une solution : une résolution validée du problème Un design pattern extrait les aspects statiques et dynamiques de la structure et de la coopération entre les participants clés de la conception d’application K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 14 / 23
  • 32. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Constitution d’un design pattern Un design pattern est défini par : un contexte : une situation qui engendre le problème un problème : le problème récurrent qui apparaît dans ce contexte une solution : une résolution validée du problème Un design pattern extrait les aspects statiques et dynamiques de la structure et de la coopération entre les participants clés de la conception d’application K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 14 / 23
  • 33. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Plan de l’exposé 1 Introduction Historique Motivation Obervations 2 Défintion des Design Patterns 3 Objectifs des Design Patterns 4 Intérêt des Design Patterns 5 Constitution 6 Les différents types de Design Patterns 7 Présentation de quelques Design Patterns Pattern Iterator Pattern Observer Application du Design Pattern Observer en Java 8 Conclusion K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 15 / 23
  • 34. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Les grands groupes de Design Patterns 3 grands groupes de Design patterns Patterns de création : Abstract Factory, Builder, FactoryMethod, Prototype, Singleton Patterns structurels : Adapter, Brigde, Composite, Decorator, Facade, Flyweight, Proxy Patterns de comportement : Chaine de responsabilité, Command, Intepreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template method, Visitor K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 16 / 23
  • 35. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Les grands groupes de Design Patterns 3 grands groupes de Design patterns Patterns de création : Abstract Factory, Builder, FactoryMethod, Prototype, Singleton Patterns structurels : Adapter, Brigde, Composite, Decorator, Facade, Flyweight, Proxy Patterns de comportement : Chaine de responsabilité, Command, Intepreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template method, Visitor K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 16 / 23
  • 36. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Les grands groupes de Design Patterns 3 grands groupes de Design patterns Patterns de création : Abstract Factory, Builder, FactoryMethod, Prototype, Singleton Patterns structurels : Adapter, Brigde, Composite, Decorator, Facade, Flyweight, Proxy Patterns de comportement : Chaine de responsabilité, Command, Intepreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template method, Visitor K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 16 / 23
  • 37. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Les grands groupes de Design Patterns 3 grands groupes de Design patterns Patterns de création : Abstract Factory, Builder, FactoryMethod, Prototype, Singleton Patterns structurels : Adapter, Brigde, Composite, Decorator, Facade, Flyweight, Proxy Patterns de comportement : Chaine de responsabilité, Command, Intepreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template method, Visitor K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 16 / 23
  • 38. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Pattern Iterator Pattern Observer Application en Java Plan de l’exposé 1 Introduction Historique Motivation Obervations 2 Défintion des Design Patterns 3 Objectifs des Design Patterns 4 Intérêt des Design Patterns 5 Constitution 6 Les différents types de Design Patterns 7 Présentation de quelques Design Patterns Pattern Iterator Pattern Observer Application du Design Pattern Observer en Java 8 Conclusion K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 17 / 23
  • 39. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Pattern Iterator Pattern Observer Application en Java Pattern Iterator Pattern Iterator : on veut pouvoir accéder séquentiellement à un agrégat d’objets sans avoir à en connaître la structure interne Un Iterator, fourni par l’agrégat, permet de se positionner en début d’agrégat et d’avancer par pas dans cet agrégat. K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 18 / 23
  • 40. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Pattern Iterator Pattern Observer Application en Java ¨§ ¤ public abstract c l a s s MareesNoires { . . . public abstract I t e r a t o r c r e a t e I t e r a t o r ( ) ; } ©¦ ¥ ¨§ ¤ public interface I t e r a t o r { public Object f i r s t ( ) ; public Object next ( ) ; public boolean isDone ( ) ; public Object currentItem ( ) ; } ©¦ ¥ ¨§ ¤ public c l a s s MareesNoiresEnBretagne extends MareesNoires { . . . public MNIterator c r e a t e I t e r a t o r ( ) { . . . } } ©¦ ¥ ¨§ ¤ public c l a s s MNIterator { public Object f i r s t ( ) ; public Object next ( ) ; public boolean isDone ( ) ; public Object currentItem ( ) ; } ©¦ ¥ ¨§ ¤ MareesNoiresEnBretagne mnb=new MareesNoiresEnBretagne ( ) ; for ( I t e r a t o r i=mnb. c r e a t e I t e r a t o r ( ) ; ! i . isDone ( ) ; ) { MareeNoire mn=i . next ( ) ; mn. nettoyer ( ) ; } ©¦ ¥ K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 19 / 23
  • 41. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Pattern Iterator Pattern Observer Application en Java Pattern Observer Pattern Observer : permet de faire répercuter le changement d’état d’un objet sur d’autres dépendant de lui. Gestion dynamique de cette dépendance (ajout et suppression de dépendances sans toucher au code). L’objet observé (Observable) gère une liste d’observateurs (Observer) dotés d’une méthode de mise à jour. K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 19 / 23
  • 42. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Pattern Iterator Pattern Observer Application en Java ¨§ ¤ public c l a s s Observable { private List listeObservers ; . . . . public void addObserver ( Observer o ) { . . . } public void removeObserver ( Observer o ) { . . . } public void notify ( Object o ) { for ( I t e r a t o r i=listeObservers . i t e r a t o r ( ) ; i . hasNext ( ) ; ) ( ( Observer ) i . next ( ) ) . update ( o ) ; } } ©¦ ¥ ¨§ ¤ public interface Observer { public void update ( Object o ) ; } ©¦ ¥ K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 19 / 23
  • 43. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Pattern Iterator Pattern Observer Application en Java ¨§ ¤ public c l a s s TrouDansCoucheOzone extends Observable { private List listeObservers ; private int tailleTrou ; . . . public void addObserver ( Observer o ) { . . . } public void removeObserver ( Observer o ) { . . . } public void notify ( ) { for ( I t e r a t o r i=listeObservers . i t e r a t o r ( ) ; i . hasNext ( ) ; ) ( ( Observer ) i . next ( ) ) . update (new Integer ( tailleTrou ) ) ; } public void setTailleTrou ( int t ) { this . tailleTrou=t ; this . notify ( ) ; } } ©¦ ¥ ¨§ ¤ public c l a s s VacancierSurLaPlage implements Observer { . . . public void update ( Integer t ) { // rajouter ou enlever de la creme s o l a i r e selon la t a i l l e du trou dans la couche d ’ ozone } } ©¦ ¥ K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 19 / 23
  • 44. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Pattern Iterator Pattern Observer Application en Java Application Observer et Observable en Java K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 20 / 23
  • 45. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Plan de l’exposé 1 Introduction Historique Motivation Obervations 2 Défintion des Design Patterns 3 Objectifs des Design Patterns 4 Intérêt des Design Patterns 5 Constitution 6 Les différents types de Design Patterns 7 Présentation de quelques Design Patterns Pattern Iterator Pattern Observer Application du Design Pattern Observer en Java 8 Conclusion K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 21 / 23
  • 46. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Solutions à des problèmes récurrents ; La compréhension des principes des Design Patterns aide à comprendre leur fonctionnement et utilisation ; Une bonne conception repose sur l’identification des objectifs et priorités ; Ne sont pas des solutions magiques, mais un important outil de conception. K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 22 / 23
  • 47. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Solutions à des problèmes récurrents ; La compréhension des principes des Design Patterns aide à comprendre leur fonctionnement et utilisation ; Une bonne conception repose sur l’identification des objectifs et priorités ; Ne sont pas des solutions magiques, mais un important outil de conception. K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 22 / 23
  • 48. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Solutions à des problèmes récurrents ; La compréhension des principes des Design Patterns aide à comprendre leur fonctionnement et utilisation ; Une bonne conception repose sur l’identification des objectifs et priorités ; Ne sont pas des solutions magiques, mais un important outil de conception. K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 22 / 23
  • 49. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion Solutions à des problèmes récurrents ; La compréhension des principes des Design Patterns aide à comprendre leur fonctionnement et utilisation ; Une bonne conception repose sur l’identification des objectifs et priorités ; Ne sont pas des solutions magiques, mais un important outil de conception. K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 22 / 23
  • 50. Introduction Définition des Design Patterns Objectifs Intérêt Constitution Types de Design Patterns Quelques Design Patterns Conclusion K. SANI, S. MIEHAKANDA, B. KEDA Design Pattern 6 mars 2013 23 / 23