SlideShare une entreprise Scribd logo
1  sur  50
Télécharger pour lire hors ligne
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

Chp5 - Applications Android
Chp5 - Applications AndroidChp5 - Applications Android
Chp5 - Applications AndroidLilia Sfaxi
 
Cycle de développement du logiciel
Cycle de développement du logicielCycle de développement du logiciel
Cycle de développement du logicielMajid CHADAD
 
Android-Tp4: stockage
Android-Tp4: stockageAndroid-Tp4: stockage
Android-Tp4: stockageLilia Sfaxi
 
Chp2 - Diagramme des Cas d'Utilisation
Chp2 - Diagramme des Cas d'UtilisationChp2 - Diagramme des Cas d'Utilisation
Chp2 - Diagramme des Cas d'UtilisationLilia Sfaxi
 
Chp3 - Architecture Logicielle des Applications Mobiles
Chp3 - Architecture Logicielle des Applications MobilesChp3 - Architecture Logicielle des Applications Mobiles
Chp3 - Architecture Logicielle des Applications MobilesLilia Sfaxi
 
Design patterns french
Design patterns frenchDesign patterns french
Design patterns frenchmeriem sari
 
patron de conception
patron de conception patron de conception
patron de conception Shili Mohamed
 
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Heithem Abbes
 
Introduction aux architectures des SI
Introduction aux architectures des SI Introduction aux architectures des SI
Introduction aux architectures des SI Heithem Abbes
 
Manuel des TP : Atelier Web 2
Manuel des TP : Atelier Web 2Manuel des TP : Atelier Web 2
Manuel des TP : Atelier Web 2Faycel Chaoua
 
Chp3 - Diagramme de Classes
Chp3 - Diagramme de ClassesChp3 - Diagramme de Classes
Chp3 - Diagramme de ClassesLilia Sfaxi
 
Architecture réparties et les services web
Architecture réparties et les services webArchitecture réparties et les services web
Architecture réparties et les services webCHOUAIB EL HACHIMI
 
Cycle de vie d'activité Android et les composant d'Android
Cycle de vie d'activité Android et les composant d'AndroidCycle de vie d'activité Android et les composant d'Android
Cycle de vie d'activité Android et les composant d'AndroidHoussem Lahiani
 
Projet sur le Cloud Computing
Projet sur le Cloud ComputingProjet sur le Cloud Computing
Projet sur le Cloud ComputingTsubichi
 

Tendances (20)

Programmation sous Android
Programmation sous AndroidProgrammation sous Android
Programmation sous Android
 
Chp5 - Applications Android
Chp5 - Applications AndroidChp5 - Applications Android
Chp5 - Applications Android
 
Cycle de développement du logiciel
Cycle de développement du logicielCycle de développement du logiciel
Cycle de développement du logiciel
 
Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
 
Android-Tp4: stockage
Android-Tp4: stockageAndroid-Tp4: stockage
Android-Tp4: stockage
 
Chp2 - Diagramme des Cas d'Utilisation
Chp2 - Diagramme des Cas d'UtilisationChp2 - Diagramme des Cas d'Utilisation
Chp2 - Diagramme des Cas d'Utilisation
 
Chp3 - Architecture Logicielle des Applications Mobiles
Chp3 - Architecture Logicielle des Applications MobilesChp3 - Architecture Logicielle des Applications Mobiles
Chp3 - Architecture Logicielle des Applications Mobiles
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
Design patterns french
Design patterns frenchDesign patterns french
Design patterns french
 
Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)
 
patron de conception
patron de conception patron de conception
patron de conception
 
cycle de vie
cycle de vie cycle de vie
cycle de vie
 
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)
 
Introduction aux architectures des SI
Introduction aux architectures des SI Introduction aux architectures des SI
Introduction aux architectures des SI
 
Uml & cas d'utilisation
Uml & cas d'utilisationUml & cas d'utilisation
Uml & cas d'utilisation
 
Manuel des TP : Atelier Web 2
Manuel des TP : Atelier Web 2Manuel des TP : Atelier Web 2
Manuel des TP : Atelier Web 2
 
Chp3 - Diagramme de Classes
Chp3 - Diagramme de ClassesChp3 - Diagramme de Classes
Chp3 - Diagramme de Classes
 
Architecture réparties et les services web
Architecture réparties et les services webArchitecture réparties et les services web
Architecture réparties et les services web
 
Cycle de vie d'activité Android et les composant d'Android
Cycle de vie d'activité Android et les composant d'AndroidCycle de vie d'activité Android et les composant d'Android
Cycle de vie d'activité Android et les composant d'Android
 
Projet sur le Cloud Computing
Projet sur le Cloud ComputingProjet sur le Cloud Computing
Projet sur le Cloud Computing
 

Similaire à Design Patterns

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 patternThierry Gayet
 
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édiasBenjamin Hoguet
 
Optimiser son workflow frontend
Optimiser son workflow frontendOptimiser son workflow frontend
Optimiser son workflow frontendLouis Chenais
 
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...Pyxis Technologies
 
Design thinking et Agilité
Design thinking et AgilitéDesign thinking et Agilité
Design thinking et AgilitéMatthieu Gioani
 
Presentation pfe 2012
Presentation pfe 2012Presentation pfe 2012
Presentation pfe 2012Sellami Ahmed
 
memoire Nathanael Delahaye
memoire Nathanael Delahayememoire Nathanael Delahaye
memoire Nathanael DelahayeNathana Delahaye
 
UML Part1-Introduction Mansouri
UML Part1-Introduction MansouriUML Part1-Introduction Mansouri
UML Part1-Introduction MansouriMansouri Khalifa
 
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 designlaureno
 
L'architecture de l'information
L'architecture de l'informationL'architecture de l'information
L'architecture de l'informationFrance
 
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 BoisvertPyxis Technologies
 
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...Benoit Drouillat
 
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 agilesClub Urba-EA
 

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