Résumé : Design Patterns
1. Définition et Utilité des Design Patterns
Définition :
Un Design Pattern est une solution générique, éprouvée et réutilisable à un problème
récurrent de conception logicielle. Ce n’est pas un code prêt-à-copier, mais un modèle
conceptuel.
Exemple : Le pattern Singleton garantit qu’une classe n’a qu’une seule instance.
Utilité :
– Réutilisabilité : Évite de réinventer la roue.
– Maintenabilité : Code mieux structuré et documenté.
– Communication : Vocabulaire commun entre développeurs (ex : “On utilise un
Observer ici”).
2. Classification des Design Patterns (GoF)
Les 23 patterns du livre “Design Patterns : Elements of Reusable Object-Oriented
Software” (GoF, 1994) sont classés en 3 familles :
gray !20 Catégo-
Problème Résolu Exemples
rie
Singleton, Factory, Buil-
Créationnels Instanciation d’objets
der
Adapter, Decorator,
Structurels Composition des objets
Proxy
Observer, Strategy, Com-
Comportementaux Interaction entre objets
mand
Remarque :
– Portée : Certains patterns s’appliquent aux classes (héritage), d’autres aux objets
(composition).
– GoF = “Gang of Four” (les 4 auteurs du livre).
1
3. Avantages et Inconvénients
Avantages :
– Flexibilité : Adaptables à différents contextes.
– Best Practices : Solutions optimisées par l’expérience.
Inconvénients :
– Surcomplexité : Si utilisés inutilement (“golden hammer”).
– Courbe d’apprentissage : Nécessitent de la pratique.
4. Exemples Clés (Problèmes/Solutions)
Strategy (Comportemental)
Problème : Changer un algorithme dynamiquement.
Solution : Interface commune + implémentations interchangeables.
Diagramme UML :
[Client] --> [Strategy] (interface)
^-- [ConcreteStrategyA]
^-- [ConcreteStrategyB]
Singleton (Créationnel)
Problème : Une seule instance d’une classe (ex : connexion DB).
Solution : Constructeur privé + méthode getInstance().
5. Points Importants du Podcast (UQAM)
Quand utiliser un pattern ?
– Quand le problème correspond exactement au contexte du pattern.
– Exemple : Observer pour notifier des objets d’un événement.
Faut-il toujours en utiliser ?
– Non ! Ils ne sont pas obligatoires. Utiliser seulement si cela simplifie le code.
Pourquoi plus de patterns “objet” que “classe” ?
– La composition (objets) est plus flexible que l’héritage (classes).
6. Ressources Complémentaires
Livres :
– GoF (1994) : Référence académique, 23 patterns.
– Head First Design Patterns : Approche pédagogique, 16 patterns.
Vidéos :
– Podcast UQAM (objectifs des patterns).
– Pattern Strategy (exemple concret).
2
À Retenir pour l’Examen
– Définir un pattern et justifier son utilisation.
– Classer un pattern (créationnel/structurel/comportemental).
– Citer avantages/inconvénients.
– Diagramme UML simple (ex : Strategy, Singleton).
– Critique : Savoir quand éviter les patterns.