Comprendre les design patterns en les voyant fonctionner

Apprendre les design patterns avec des demos interactives

Design Pattern Playground aide a relier la theorie, le diagramme UML et le comportement a l execution. Chaque pattern dispose d une page dediee avec explication, demonstration visuelle et quiz.

Les implementations sont en Java avec Spring Boot. L interface interactive est construite avec React. Explore les patterns GoF : Creational, Structural et Behavioral.

Catalogue des design patterns

CREATIONAL - INTERMEDIATE

Abstract Factory

Fabrique des familles d’objets cohérentes sans exposer les classes concrètes ni mélanger les thèmes au niveau du client.

Cas d usage : Choisir un thème sci-fi ou médiéval puis générer un héros, un transport et une relique parfaitement alignés.

STRUCTURAL - INTERMEDIATE

Bridge

Sépare une abstraction de son implémentation pour les faire varier indépendamment sans explosion de sous-classes.

Cas d usage : Piloter la même forme avec plusieurs moteurs de rendu comme Shape + RenderEngine dans une UI ou un moteur graphique.

BEHAVIORAL - INTERMEDIATE

Memento

Capture et restaure un état interne sans exposer directement les détails de cet état au client.

Cas d usage : Sauvegarder une scène, appliquer des mutations risquées puis restaurer proprement un checkpoint comme dans un jeu ou un éditeur.

BEHAVIORAL - INTERMEDIATE

Iterator

Expose un parcours séquentiel sur une collection sans révéler sa structure interne ni dupliquer la logique de navigation.

Cas d usage : Parcourir une liste ou un arbre avec un curseur next / previous stable, même quand la structure sous-jacente change.

BEHAVIORAL - INTERMEDIATE

Template Method

Définit le squelette stable d'un algorithme puis laisse certaines étapes varier dans les sous-classes.

Cas d usage : Construire un workflow préparé -> exécuté -> finalisé dans lequel seule l'étape centrale change selon le scénario choisi.

BEHAVIORAL - ADVANCED

Interpreter

Interprète un mini langage en transformant chaque instruction en expression exécutable sur un contexte.

Cas d usage : Écrire un script MOVE / TURN / ATTACK / REPEAT puis visualiser son parsing, son exécution et ses limites sans interprète complet.

BEHAVIORAL - ADVANCED

Visitor

Ajoute des opérations sur une structure existante sans modifier les classes des éléments parcourus.

Cas d usage : Analyser un arbre de dossiers et de fichiers avec plusieurs visiteurs : compter, valoriser, rechercher ou scanner.

CREATIONAL - INTERMEDIATE

Prototype

Duplique un objet déjà configuré pour créer rapidement de nouvelles variantes sans repasser par toute la construction.

Cas d usage : Cloner un robot, un drone ou un avatar puis observer la différence entre copie superficielle et copie profonde.

BEHAVIORAL - INTERMEDIATE

Mediator

Centralise les échanges entre plusieurs objets pour qu'ils passent par un hub commun au lieu de se connaître tous directement.

Cas d usage : Construire un chat multijoueur où les messages transitent par un salon central pour réduire le couplage entre participants.

BEHAVIORAL - INTERMEDIATE

Chain of Responsibility

Fait circuler une requête dans une chaîne de handlers capables de la laisser passer, de la bloquer ou de la traiter.

Cas d usage : Visualiser un pipeline auth -> validation -> traitement où chaque maillon prend une décision locale sans gros controller central.

BEHAVIORAL - INTERMEDIATE

Command

Encapsule une action dans un objet pour pouvoir la déclencher, l'historiser, l'annuler et la rejouer sans coupler l'interface au receiver.

Cas d usage : Construire un simulateur undo / redo, un éditeur ou un mini jeu d'actions historisées avec piles de commandes.

STRUCTURAL - INTERMEDIATE

Adapter

Traduit une interface incompatible vers le contrat attendu par le client sans modifier le composant legacy.

Cas d usage : Connecter une source historique à une cible moderne en convertissant connecteur, protocole ou format de message.

STRUCTURAL - INTERMEDIATE

Proxy

Place un intermédiaire devant une ressource pour contrôler l'accès, retarder son chargement ou masquer sa nature réelle.

Cas d usage : Filtrer l'accès à une ressource sensible, cacher un appel réseau lourd ou activer un lazy loading avant la vraie ressource.

STRUCTURAL - BEGINNER

Facade

Expose une entrée simple vers plusieurs sous-systèmes et masque la chorégraphie détaillée.

Cas d usage : Déclencher une routine domotique audio + lumière + sécurité en un clic au lieu de piloter chaque module manuellement.

STRUCTURAL - INTERMEDIATE

Composite

Compose des objets en arbre pour traiter uniformément un élément simple et un groupe d'éléments.

Cas d usage : Construire un explorateur de dossiers et fichiers où une action appliquée au root descend naturellement sur toute la structure.

CREATIONAL - INTERMEDIATE

Builder

Construit un objet complexe étape par étape au lieu de pousser une longue liste de paramètres dans un constructeur géant.

Cas d usage : Assembler visuellement une voiture, un personnage ou une maison en posant structure, noyau, module et finition dans un ordre lisible.

CREATIONAL - BEGINNER

Singleton

Garantit qu'un service central ne possède qu'une seule instance partagée dans toute l'application.

Cas d usage : Partager la même configuration globale, le même logger ou le même gestionnaire audio entre plusieurs clients.

BEHAVIORAL - INTERMEDIATE

State

Fait varier le comportement d'un contexte selon son état interne sans multiplier les conditions dans le code client.

Cas d usage : Piloter une machine à états de personnage, un workflow ou un cycle de vie UI avec des transitions explicites.

STRUCTURAL - ADVANCED

Flyweight

Partage l'état intrinsèque entre de nombreux objets pour éviter de multiplier les instances lourdes en mémoire.

Cas d usage : Afficher des milliers d'arbres, particules ou projectiles en mutualisant textures, meshes et autres données communes.

STRUCTURAL - INTERMEDIATE

Decorator

Ajoute des comportements à un objet en l'enveloppant avec des couches successives, sans modifier sa classe d'origine.

Cas d usage : Empiler des power-ups sur un personnage, enrichir un café customisable ou combiner des effets sans explosion de classes.

CREATIONAL - BEGINNER

Factory Method

Centralise la création d'objets derrière une fabrique spécialisée.

Cas d usage : Choisir dynamiquement le bon type de véhicule sans dupliquer des constructeurs.

BEHAVIORAL - INTERMEDIATE

Observer

Relie un sujet à plusieurs abonnés qui reçoivent automatiquement chaque notification.

Cas d usage : Propager un événement de publication à plusieurs consommateurs sans les coupler entre eux.

BEHAVIORAL - INTERMEDIATE

Strategy

Permet de changer un algorithme à l'exécution sans modifier le contexte.

Cas d usage : Basculer entre plusieurs modes de paiement dans un même workflow.