Patrons de conception GoF : Observateur, Stratégie, Fabrique
Informatique de gestion · Bachelor 3
Patrons de conception du Gang of Four : familles, Singleton, Fabrique, Observateur, Stratégie.
Introduction
Un patron de conception (design pattern) est une solution éprouvée et nommée à un problème récurrent de conception orientée objet. Le catalogue de référence, publié en 1994 par Gamma, Helm, Johnson et Vlissides (le « Gang of Four », GoF), décrit 23 patrons répartis en trois familles : création, structure et comportement.
Les patrons de création (Singleton, Fabrique, Fabrique abstraite, Monteur) découplent la façon de créer les objets de leur utilisation. Les patrons de structure (Adaptateur, Décorateur, Façade, Composite) organisent les classes et objets en structures plus grandes. Les patrons de comportement (Observateur, Stratégie, Commande, État) répartissent les responsabilités et la communication entre objets.
Un patron n'est pas du code à copier mais un vocabulaire commun et un compromis : il apporte de la flexibilité au prix d'une complexité supplémentaire. Le bon réflexe est de les reconnaître dans les frameworks utilisés (écouteurs d'événements = Observateur, interfaces de tri = Stratégie) et de ne les appliquer que lorsque le problème qu'ils résolvent se pose réellement.
Objectifs d'apprentissage
- Citer les trois familles de patrons GoF et un exemple de chacune
- Expliquer l'intention du patron Observateur et du patron Stratégie
- Distinguer Fabrique et construction directe par new
- Identifier un patron dans un exemple de code ou de cas métier
- Évaluer le coût en complexité d'un patron
Concepts clés
- Trois familles
- Création (instancier), structure (composer), comportement (répartir les responsabilités).
- Observateur
- Un sujet notifie automatiquement ses observateurs d'un changement d'état, sans les connaître concrètement.
- Stratégie
- Encapsuler une famille d'algorithmes interchangeables derrière une interface commune.
- Fabrique
- Déléguer la création d'objets à une méthode ou une classe dédiée pour cacher la classe concrète.
- Compromis
- Un patron réduit le couplage mais ajoute des classes et de l'indirection ; à n'utiliser que si le besoin existe.
Conclusion
Les patrons de conception sont un langage partagé pour parler d'architecture à l'échelle de quelques classes. Leur valeur tient à la reconnaissance du problème, pas à l'application mécanique de la solution.
Dans les applications de gestion, on les croise surtout dans les frameworks (événements, injection, accès aux données). Les maîtriser aide à lire du code existant, à discuter avec les développeurs et à éviter la sur-conception.
Cartes
- Qu'est-ce qu'un patron de conception ?
- Une solution réutilisable, nommée et décrite (intention, structure, conséquences) à un problème récurrent de conception.
- Quelles sont les trois familles du GoF ?
- Création, structure, comportement.
- Quel est le but du patron Singleton et son principal risque ?
- Garantir une seule instance avec un accès global ; risque : état global caché, couplage fort et tests difficiles.
- À quoi sert le patron Fabrique (Factory Method) ?
- À déléguer l'instanciation à une méthode redéfinissable, de sorte que le code client dépende d'une interface et non d'une classe concrète.
- Que fait le patron Adaptateur ?
- Convertit l'interface d'une classe existante en celle attendue par le client, par exemple pour intégrer une bibliothèque tierce.
- Que fait le patron Décorateur ?
- Ajoute dynamiquement des responsabilités à un objet en l'enveloppant, sans passer par l'héritage.
- Comment fonctionne le patron Observateur ?
- Le sujet maintient une liste d'observateurs et les notifie à chaque changement d'état ; ils s'abonnent et se désabonnent librement.
- Quel problème résout le patron Stratégie ?
- Remplacer de longues séries de if/else sur un type par des objets d'algorithme interchangeables, par exemple plusieurs modes de calcul de frais de port.
- Pourquoi dit-on qu'un patron est aussi un vocabulaire ?
- Parce que nommer « Observateur » ou « Façade » permet à une équipe de communiquer une conception complète en un mot.
Glossaire
- Couplage faible
- Degré réduit de dépendance entre modules, qui facilite le changement et le test.
- Observateur
- Patron de comportement de type publication-abonnement entre un sujet et des observateurs.
- Stratégie
- Patron qui isole des algorithmes interchangeables derrière une interface.
- Fabrique
- Patron de création qui cache la classe concrète instanciée.
- Façade
- Patron de structure offrant une interface simplifiée à un sous-système complexe.
- Anti-patron
- Solution fréquente mais contre-productive à un problème de conception.