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 coherentes sans exposer les classes concretes ni melanger les themes au niveau du client.

Cas d usage : Choisir un theme sci-fi ou medieval puis generer un hero, un transport et une relique parfaitement alignes.

STRUCTURAL - INTERMEDIATE

Bridge

Separe une abstraction de son implementation pour les faire varier independamment sans explosion de sous-classes.

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

BEHAVIORAL - INTERMEDIATE

Memento

Capture et restaure un etat interne sans exposer directement les details de cet etat au client.

Cas d usage : Sauvegarder une scene, appliquer des mutations risquees puis restaurer proprement un checkpoint comme dans un jeu ou un editeur.

BEHAVIORAL - INTERMEDIATE

Iterator

Expose un parcours sequentiel sur une collection sans reveler sa structure interne ni dupliquer la logique de navigation.

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

BEHAVIORAL - INTERMEDIATE

Template Method

Definit le squelette stable d un algorithme puis laisse certaines etapes varier dans les sous-classes.

Cas d usage : Construire un workflow prepare -> execute -> finalise dans lequel seule l etape centrale change selon le scenario choisi.

BEHAVIORAL - ADVANCED

Interpreter

Interprete un mini langage en transformant chaque instruction en expression executable sur un contexte.

Cas d usage : Ecrire un script MOVE / TURN / ATTACK / REPEAT puis visualiser son parsing, son execution et ses limites sans interprete complet.

BEHAVIORAL - ADVANCED

Visitor

Ajoute des operations sur une structure existante sans modifier les classes des elements 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 deja configure pour creer rapidement de nouvelles variantes sans repasser par toute la construction.

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

BEHAVIORAL - INTERMEDIATE

Mediator

Centralise les echanges entre plusieurs objets pour qu ils passent par un hub commun au lieu de se connaitre tous directement.

Cas d usage : Construire un chat multijoueur ou les messages transitent par un salon central pour reduire le couplage entre participants.

BEHAVIORAL - INTERMEDIATE

Chain of Responsibility

Fait circuler une requete dans une chaine de handlers capables de la laisser passer, de la bloquer ou de la traiter.

Cas d usage : Visualiser un pipeline auth -> validation -> traitement ou chaque maillon prend une decision locale sans gros controller central.

BEHAVIORAL - INTERMEDIATE

Command

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

Cas d usage : Construire un simulateur undo / redo, un editeur ou un mini jeu d actions historisees 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 a une cible moderne en convertissant connecteur, protocole ou format de message.

STRUCTURAL - INTERMEDIATE

Proxy

Place un intermediaire devant une ressource pour controler l acces, retarder son chargement ou masquer sa nature reelle.

Cas d usage : Filtrer l acces a une ressource sensible, cacher un appel reseau lourd ou activer un lazy loading avant la vraie ressource.

STRUCTURAL - BEGINNER

Facade

Expose une entree simple vers plusieurs sous-systemes et masque la choregraphie detaillee.

Cas d usage : Declencher une routine domotique audio + lumiere + securite en un clic au lieu de piloter chaque module manuellement.

STRUCTURAL - INTERMEDIATE

Composite

Compose des objets en arbre pour traiter uniformement un element simple et un groupe d elements.

Cas d usage : Construire un explorateur de dossiers et fichiers ou une action appliquee au root descend naturellement sur toute la structure.

CREATIONAL - INTERMEDIATE

Builder

Construit un objet complexe etape par etape au lieu de pousser une longue liste de parametres dans un constructeur geant.

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 possede qu une seule instance partagee dans toute l application.

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

BEHAVIORAL - INTERMEDIATE

State

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

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

STRUCTURAL - ADVANCED

Flyweight

Partage l etat intrinseque entre de nombreux objets pour eviter de multiplier les instances lourdes en memoire.

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

STRUCTURAL - INTERMEDIATE

Decorator

Ajoute des comportements a 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 cafe customisable ou combiner des effets sans explosion de classes.

CREATIONAL - BEGINNER

Factory Method

Centralise la creation d objets derriere une fabrique specialisee.

Cas d usage : Choisir dynamiquement le bon type de vehicule sans dupliquer des constructeurs.

BEHAVIORAL - INTERMEDIATE

Observer

Relie un sujet a plusieurs abonnes qui recoivent automatiquement chaque notification.

Cas d usage : Propager un evenement de publication a plusieurs consommateurs sans les coupler entre eux.

BEHAVIORAL - INTERMEDIATE

Strategy

Permet de changer un algorithme a l execution sans modifier le contexte.

Cas d usage : Basculer entre plusieurs modes de paiement dans un meme workflow.