Outils pour utilisateurs

Outils du site


helloworld:design_pattern

Ceci est une ancienne révision du document !


Gang of four

Création

Il est utilisé quand une classe ne peut être instanciée qu'une seule fois.

  • Prototype

Plutôt que de créer un objet de A à Z c'est à dire en appelant un constructeur, puis en configurant la valeur de ses attributs, ce patron permet de créer un nouvel objet par recopie d'un objet existant.

  • Fabrique

Ce patron permet la création d'un objet dont la classe dépend des paramètres de construction (un nom de classe par exemple).

Ce patron permet de gérer différentes fabriques concrètes à travers l'interface d'une fabrique abstraite.

  • Monteur

Ce patron permet la construction d'objets complexes en construisant chacune de ses parties sans dépendre de la représentation concrète de celles-ci.

Structure

  • Pont

Utilisation d'interface à la place d'implémentation spécifique pour permettre l'indépendance entre l'utilisation et l'implémentation.

  • Objet composite

Ce patron permet de manipuler des objets composites à travers la même interface que les éléments dont ils sont constitués.

  • Poids-mouche

Ce patron permet de diminuer le nombre de classes créées en regroupant les classes similaires en une seule et en passant les paramètres supplémentaires aux méthodes appelées.

  • Adaptateur

Ce patron permet d'adapter une interface existante à une autre interface.

  • Façade

Ce patron de conception permet de simplifier l'utilisation d'une interface complexe.

  • Proxy

Ce patron permet de substituer une classe à une autre en utilisant la même interface afin de contrôler l'accès à la classe (contrôle de sécurité ou appel de méthodes à distance).

Il utilise la composition.

  • Décorateur

Ce patron permet d'attacher dynamiquement de nouvelles responsabilités à un objet.

Il utilise l’agrégation.

Comportement

  • Chaîne de responsabilité

Permet de construire une chaîne de traitement d'une même requête.

  • Commande

Encapsule l'invocation d'une commande.

  • Interpréteur

Interpréter un langage spécialisé.

  • Itérateur

Parcourir un ensemble d'objets à l'aide d'un objet de contexte (curseur).

  • Médiateur

Réduire les dépendances entre un groupe de classes en utilisant une classe Médiateur comme intermédiaire de communication.

  • Mémento

Mémoriser l'état d'un objet pour pouvoir le restaurer ensuite.

Intercepter un évènement pour le traiter.

L'observateur : plusieurs observateurs espionnant les modifications d'un observé. Ici, les observateurs connaissent l'observé et l'observé connait les observateurs.

PubSub / Publier-souscrire : les observateurs s'abonnent à des événements et non plus des observés. Les observateurs et les observés ne se connaissent pas.

Reactor : proche de l'observateur, ici, Reactor ne transmet pas de message, il exécute directement la méthode.

  • État

Gérer différents états à l'aide de différentes classes.

  • Stratégie

Changer dynamiquement de stratégie (algorithme) selon le contexte.

  • Patron de méthode

Définir un modèle de méthode en utilisant des méthodes abstraites.

Découpler classes et traitements, afin de pouvoir ajouter de nouveaux traitements sans ajouter de nouvelles méthodes aux classes existantes.

Architecture

MVC : modèle-vue-contrôleur : séparation du code en 3 zones (fonctions métiers, IHM, contrôleur des demandes de modification de l'IHM vers les fonctions métier). Utilise le pattern Observateur.

Couches / Architecture n tiers : le code est décomposé en couches et chaque couche ne peut communiquer qu'avec celles du dessus ou du dessous.

Microkernel / Plug-In Architecture : architecture modulable.

Divers

Bean : stockage d'information.

Composite : une instance d'une classe pouvant contenir une ou plusieurs autres instances d'une même classe ou interface commune. Idéale pour générer un arbre.

Proxy : passer par un objet intermédiaire avant d'atteindre le bon.

Requêteur : masquer la nécessité d'ouvrir et de fermer une connexion.

Stratégie : sélectionner pendant l'exécution la bonne méthode. Sur la base d'une interface commune, chaque classe fait la même chose mais avec un algorithme différent (télécharger un fichier depuis le protocole HTTPS ou FTP, choix de l'algorithme de compression, …).

Sérialisation ou Marshalling : (pattern ?)convertir des données en format binaire et inversement.

Invocateur : démarrer et arrêter un service.

Commande : exécuter une commande, éventuellement par l'intermédiaire d'un invocateur. On peut également implémenter un Undomanager (undo/redo).

Intercepteur : ajouter des fonctionnalités, avant et après l'appel d'une méthode et voir pourquoi pas appeler une autre méthode à la place.

Chaîne de responsabilité : liste chaînée d'intercepteurs.

Décorateur : permet d'exécuter du code avant et après l'appel d'une fonction ou des fonctions d'une classe.

Pont : découple l'interface de l'implémentation.

helloworld/design_pattern.1581273165.txt.gz · Dernière modification : de root