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.