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

  • 100