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 u...
Introduction aux design patterns
Origines
Gang Of Four
Erich Gamma (JUnit , Eclipse)
Richard Helm (POO)
John Vlissides (Jo...
Introduction aux design patterns
Origines
Gang Of Four
Gang Of Four - Histoire
Thèse d’Erich Gamma sur les modèles début 1...
Introduction aux design patterns
Origines
Les différents types
Creational Patterns (Singleton, Abstract Factory, ...)
Struc...
Introduction aux design patterns
Le singleton : un cas simple...
Le plus simple design pattern mais aussi le plus controve...
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 ();...
Introduction aux design patterns
Le singleton : un cas simple...
Avec templates
template <class T> class Singleton{
public...
Introduction aux design patterns
Le singleton : un cas simple...
Avec templates
template <class T> T& Singleton <T>:: getI...
Introduction aux design patterns
Le singleton : sujet à débat !
Singleton VS Variable Globale
"Le singleton est une variab...
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 n...
Introduction aux design patterns
Sources
Merci pour votre attention.
Sources :
Design Patterns - Elements of Reusable Obje...
Prochain SlideShare
Chargement dans…5
×

Introduction aux design patterns

479 vues

Publié le

Voici une présentation sur :
- Petite histoire sur le Gang Of Four et les design patterns
- Le singleton avant/après c++11

Cette présentation a été donnée lors des Rencontres C++ à Montpellier le 17/03/15.

Publié dans : Logiciels
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
479
Sur SlideShare
0
Issues des intégrations
0
Intégrations
3
Actions
Partages
0
Téléchargements
8
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Introduction aux design patterns

  1. 1. Introduction aux design patterns Introduction aux design patterns Clément Simon 28 mars 2015
  2. 2. Introduction aux design patterns Sommaire Les origines Le singleton
  3. 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. 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. 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. 6. Introduction aux design patterns Origines Les différents types Creational Patterns (Singleton, Abstract Factory, ...) Structural Patterns (Adapter, Decorateur, ...) Behavioral Patterns (Command, State, ...)
  7. 7. Introduction aux design patterns Le singleton : un cas simple... Le plus simple design pattern mais aussi le plus controversé. Avant C++11 :
  8. 8. Introduction aux design patterns Le singleton : un cas simple... Après C++11 :
  9. 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. 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. 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. 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. 13. Introduction aux design patterns Le singleton : sujet à débat ! Singleton VS Variable Globale
  14. 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. 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)

×