Design Patterns
Catalogue et exercices
Catégories
🔧 Créationnel | 🗼Structurel | 🤹Comportemental |
---|---|---|
Prototype | Adapter | Strategy |
Singleton | Composite | Chain of Responsibility |
Proxy | Observer | |
Decorator |
Prototype
Usage
- Cloner un objet sans être couplé aux détails d'implémentation de sa classe
- Créer des modèles de bases pour fabriquer facilement de nouveaux objets

Prototype
Schema

Adapter
Usage

Créer une classe B autour d'une classe A, B présentant une nouvelle interface, et utilisant l'ancienne interface de A en interne.
Adapter
Schema

Singleton
Usage

- Limiter une classe à 1 unique instance (ex: l'objet qui lit la DB)
- Retarder son initialisation au moment où c'est nécessaire
Singleton
Schema

Composite
Usage

- Représenter une structure d'objet en arbre
- Pouvoir travailler uniformément avec de simples objets, ou des aggrégats d'objet
Composite
Schema

Facade
Usage

Offrir une interface simplifiée et limitée à un ou plusieurs sous-systèmes complexes.
- Réduit le couplage du code
- Mais risque que la façade couvre trop de chose
Facade
Schema

Proxy
Usage

Contrôler l'accès à un objet et ajouter de la logique avant ou après qu'une requête lui soit transmise
Proxy
Schema

Decorator est un pattern similaire. La nuance est dans l'intention
Strategy
Usage

Encapsule une logique/algorithme dans des objets/fonctions que l'on peut interchanger à l'éxecution
Strategy
Schema
Note: en pratique, préférez de simples fonctions

Chain of Responsibility
Usage
Séparer une logique en une chaîne dynamique de Handler. Chacun son tour ils peuvent traiter la requête, et éventuellement la passer au suivant

Chain of Responsibility
Schema
Note: encore une fois, privilégiez les simples fonctions

Observer
Usage
Les changements d'un élément feront réagir un ensemble d'autres éléments.
Ces autres éléments peuvent être connus seulement à l'éxecution

Observer
Schéma
Exemple: HTMLElement.addEventListener

Design Patterns : Catalogue
By Nicolas Gaborit
Design Patterns : Catalogue
Catalogue de designs patterns populaires. Présentation et exercices en JS
- 150