Introduction aux design patterns
Introduction aux design patterns
Clément Simon
28 mars 2015
Introduction aux design patterns
Sommaire
Les origines
Le singleton
Introduction aux design patterns
Origines
Qu’est-ce que c’est ?
"Ce sont des modèles théoriques adaptables qui résolvent un
problème précis."
Un schéma de conception nomme, décrit, explique et permet
d’évaluer une conception d’un système extensible et réutilisable
digne d’intérêt pour un problème récurrent.
Introduction aux design patterns
Origines
Gang Of Four
Erich Gamma (JUnit , Eclipse)
Richard Helm (POO)
John Vlissides (John Vlissides Award)
Ralph Johnson (Smalltalk)
Introduction aux design patterns
Origines
Gang Of Four
Gang Of Four - Histoire
Thèse d’Erich Gamma sur les modèles début 1991
+ Richard Helm dans l’année
+ John Vlissides juste après
+ Ralph Johnson en 92
⇒ En 93 : sorti du 1er catalogue.
⇒ Très longue gestation : "Ce livre a vu 4 pays, 3 mariages de ses
auteurs, et la naissance de 2 enfants." Sortie en 1995.
Introduction aux design patterns
Origines
Les différents types
Creational Patterns (Singleton, Abstract Factory, ...)
Structural Patterns (Adapter, Decorateur, ...)
Behavioral Patterns (Command, State, ...)
Introduction aux design patterns
Le singleton : un cas simple...
Le plus simple design pattern mais aussi le plus controversé.
Avant C++11 :
Introduction aux design patterns
Le singleton : un cas simple...
Après C++11 :
Introduction aux design patterns
Le singleton : un cas simple...
Sans templates
class A{
public:
static A& getInstance ();
};
A& A :: getInstance (){
static A instance;
return instance ;
}
// Appel :
A& sin=A:: getInstance ();
Introduction aux design patterns
Le singleton : un cas simple...
Avec templates
template <class T> class Singleton{
public:
static T& getInstance ();
};
class A : public Singleton <A >{};
Introduction aux design patterns
Le singleton : un cas simple...
Avec templates
template <class T> T& Singleton <T>:: getInstance (){
static T instance;
return instance ;
}
// Appel :
A& sin=Singleton <A>:: getInstance ();
Introduction aux design patterns
Le singleton : sujet à débat !
Singleton VS Variable Globale
"Le singleton est une variable globale"
"Le singleton est une variable globale déguisé"
"Le singleton introduit un état global, ce qui rend les variables
globales non populaire"
"Pourquoi l’état global est-il si mauvais ? -> Il rend le
programme impredictible."
Introduction aux design patterns
Le singleton : sujet à débat !
Singleton VS Variable Globale
Introduction aux design patterns
Conclusion
Heureusement que le GoF à écrit ce livre !
Les design patterns permettent de ne pas réinventer 100 fois un
même fonctionnement -> Réutilisabilité .
Le Singleton est plus fiable qu’une variable globale.
Introduction aux design patterns
Sources
Merci pour votre attention.
Sources :
Design Patterns - Elements of Reusable Object-Oriented
Software (Gang Of Four)
Cours d’Ingénierie logicielle[FMIN107] de C.Dony.
Présentation des principaux design patterns en C++
(http ://come-david.developpez.com/tutoriels/dps/)
Singletons en C++ (http ://h-deb.clg.qc.ca/Sujets/Divers–
cplusplus/CPP–Singletons.html)

Contenu connexe

PDF
Présentation (brève) de scala
PDF
De java à swift en 2 temps trois mouvements
PDF
Sibtel&Swift
PPT
Android Bonnees pratiques
PDF
Design Pattern
PDF
Cours1
PPTX
Design Pattern: Développement et Bonnes pratiques
PPTX
Design Pattern lecture 2
Présentation (brève) de scala
De java à swift en 2 temps trois mouvements
Sibtel&Swift
Android Bonnees pratiques
Design Pattern
Cours1
Design Pattern: Développement et Bonnes pratiques
Design Pattern lecture 2

En vedette (20)

PPTX
Design pattern
PDF
Swift, opportunités et perspectives du dernier langage d'Apple
PDF
Design patterns - Exemples en Java
PPTX
Visitor Pattern
PDF
01 programmation mobile - android - (introduction)
PPTX
Design Pattern introduction
PDF
Chp6 - Développement iOS
PDF
Chp2 - Conception UX-UI des Applications Mobiles
PDF
Chp5 - Applications Android
PDF
Chp3 - Architecture Logicielle des Applications Mobiles
PDF
Chp1 - Introduction au Développement Mobile
PDF
Design Patterns (2003)
PDF
Jcom02.ppt
PDF
Libres propos fédéralistes
PPT
Cuidemos el mar
PPT
Eras geologicas
PDF
Sacs pour ordinateurs
PDF
Interview de m. bernard do
DOCX
Demetria
PDF
Documentation 60 momes13-fr
Design pattern
Swift, opportunités et perspectives du dernier langage d'Apple
Design patterns - Exemples en Java
Visitor Pattern
01 programmation mobile - android - (introduction)
Design Pattern introduction
Chp6 - Développement iOS
Chp2 - Conception UX-UI des Applications Mobiles
Chp5 - Applications Android
Chp3 - Architecture Logicielle des Applications Mobiles
Chp1 - Introduction au Développement Mobile
Design Patterns (2003)
Jcom02.ppt
Libres propos fédéralistes
Cuidemos el mar
Eras geologicas
Sacs pour ordinateurs
Interview de m. bernard do
Demetria
Documentation 60 momes13-fr
Publicité

Similaire à Introduction aux design patterns (20)

PDF
Design Patterns
PPT
Patrons de creation
PDF
DesignPatternsISI.pdf
PPTX
Patrons de conception
PPT
Design Patterns
PDF
Projet+com02.ppt
PDF
patron de conception
PDF
Design patterns
PPTX
Singleton pattern - Design patterns
PDF
CM-patterns.pdf
PPTX
Presentation DESIGN PATTERNS DE CREATION.pptx
PPT
Design Patterns Java
PDF
design patterns en C++
PPTX
Refactoring vers les design patterns pyxis v2
PPTX
Design patterns gof fr
PDF
Abstract factory+adapter
PDF
Projet COM02.ppt
PDF
Designs Patterns
Design Patterns
Patrons de creation
DesignPatternsISI.pdf
Patrons de conception
Design Patterns
Projet+com02.ppt
patron de conception
Design patterns
Singleton pattern - Design patterns
CM-patterns.pdf
Presentation DESIGN PATTERNS DE CREATION.pptx
Design Patterns Java
design patterns en C++
Refactoring vers les design patterns pyxis v2
Design patterns gof fr
Abstract factory+adapter
Projet COM02.ppt
Designs Patterns
Publicité

Introduction aux design patterns

  • 1. Introduction aux design patterns Introduction aux design patterns Clément Simon 28 mars 2015
  • 2. Introduction aux design patterns Sommaire Les origines Le singleton
  • 3. Introduction aux design patterns Origines Qu’est-ce que c’est ? "Ce sont des modèles théoriques adaptables qui résolvent un problème précis." Un schéma de conception nomme, décrit, explique et permet d’évaluer une conception d’un système extensible et réutilisable digne d’intérêt pour un problème récurrent.
  • 4. Introduction aux design patterns Origines Gang Of Four Erich Gamma (JUnit , Eclipse) Richard Helm (POO) John Vlissides (John Vlissides Award) Ralph Johnson (Smalltalk)
  • 5. Introduction aux design patterns Origines Gang Of Four Gang Of Four - Histoire Thèse d’Erich Gamma sur les modèles début 1991 + Richard Helm dans l’année + John Vlissides juste après + Ralph Johnson en 92 ⇒ En 93 : sorti du 1er catalogue. ⇒ Très longue gestation : "Ce livre a vu 4 pays, 3 mariages de ses auteurs, et la naissance de 2 enfants." Sortie en 1995.
  • 6. Introduction aux design patterns Origines Les différents types Creational Patterns (Singleton, Abstract Factory, ...) Structural Patterns (Adapter, Decorateur, ...) Behavioral Patterns (Command, State, ...)
  • 7. Introduction aux design patterns Le singleton : un cas simple... Le plus simple design pattern mais aussi le plus controversé. Avant C++11 :
  • 8. Introduction aux design patterns Le singleton : un cas simple... Après C++11 :
  • 9. Introduction aux design patterns Le singleton : un cas simple... Sans templates class A{ public: static A& getInstance (); }; A& A :: getInstance (){ static A instance; return instance ; } // Appel : A& sin=A:: getInstance ();
  • 10. Introduction aux design patterns Le singleton : un cas simple... Avec templates template <class T> class Singleton{ public: static T& getInstance (); }; class A : public Singleton <A >{};
  • 11. Introduction aux design patterns Le singleton : un cas simple... Avec templates template <class T> T& Singleton <T>:: getInstance (){ static T instance; return instance ; } // Appel : A& sin=Singleton <A>:: getInstance ();
  • 12. Introduction aux design patterns Le singleton : sujet à débat ! Singleton VS Variable Globale "Le singleton est une variable globale" "Le singleton est une variable globale déguisé" "Le singleton introduit un état global, ce qui rend les variables globales non populaire" "Pourquoi l’état global est-il si mauvais ? -> Il rend le programme impredictible."
  • 13. Introduction aux design patterns Le singleton : sujet à débat ! Singleton VS Variable Globale
  • 14. Introduction aux design patterns Conclusion Heureusement que le GoF à écrit ce livre ! Les design patterns permettent de ne pas réinventer 100 fois un même fonctionnement -> Réutilisabilité . Le Singleton est plus fiable qu’une variable globale.
  • 15. Introduction aux design patterns Sources Merci pour votre attention. Sources : Design Patterns - Elements of Reusable Object-Oriented Software (Gang Of Four) Cours d’Ingénierie logicielle[FMIN107] de C.Dony. Présentation des principaux design patterns en C++ (http ://come-david.developpez.com/tutoriels/dps/) Singletons en C++ (http ://h-deb.clg.qc.ca/Sujets/Divers– cplusplus/CPP–Singletons.html)