background preloader

Design Pattern

Facebook Twitter

Iluwatar/java-design-patterns. Design Pattern Adapter. Un article de Wikipédia, l'encyclopédie libre.

Design Pattern Adapter

En génie logiciel, adaptateur (ou wrapper[1]) est un patron de conception (design pattern) de type structure (structural). Il permet de convertir l'interface d'une classe en une autre interface que le client attend. L’adaptateur fait fonctionner ensemble des classes qui n'auraient pas pu fonctionner sans lui, à cause d'une incompatibilité d'interfaces[2]. Il permet d'intégrer une classe à ne pas modifier[3], par exemple : Une API tiers convient au besoin fonctionnel, mais la signature de ses méthodes ne convient pas.L'utilisation d'anciennes classes doit être normalisée, sans pour autant en reprendre tout le code.

Un objet adaptateur sert de liaison entre les objets manipulés et un programme les utilisant, permettant la communication entre classes. Schéma UML du motif de conception adaptateur. Design Pattern Bridge. Un article de Wikipédia, l'encyclopédie libre.

Design Pattern Bridge

Cet article ou cette section peut contenir un travail inédit ou des déclarations non vérifiées(indiquez la date de pose grâce au paramètre date). Le pont est un patron de conception de la famille structuration, qui permet de découpler l'interface d'une classe et son implémentation. La partie concrète (implémentation réelle) peut alors varier, indépendamment de celle abstraite (définition virtuelle), tant qu'elle respecte le contrat de réécriture associé qui les lie (obligation de se conformer aux signatures des fonctions/méthodes, et de leurs fournir un corps physique d'implémentation). Design Pattern Builder. Un article de Wikipédia, l'encyclopédie libre.

Design Pattern Builder

Cet article ou cette section peut contenir un travail inédit ou des déclarations non vérifiées(indiquez la date de pose grâce au paramètre date). Pour la profession dans le secteur du cinéma, voir Monteur. Le monteur (builder) est un patron de conception utilisé pour la création d'une variété d'objets complexes à partir d'un objet source. L'objet source peut consister en une variété de parties contribuant individuellement à la création de chaque objet complet grâce à un ensemble d'appels à l'interface commune de la classe abstraite Monteur. Un exemple d'objet source est une liste de caractères ou d'images dans un message devant être codé. Dans l'exemple précédent, le logiciel va créer une classe Monteur spécifique, enigmaBuilder. Son but est de séparer la construction d'un objet complexe de la représentation afin que le même processus de construction puisse créer différentes représentations.

Design Pattern Command. Un article de Wikipédia, l'encyclopédie libre.

Design Pattern Command

Cet article ou cette section peut contenir un travail inédit ou des déclarations non vérifiées(indiquez la date de pose grâce au paramètre date). Vous pouvez aider en ajoutant des références. En génie logiciel, commande est un patron de conception (design pattern) de type comportemental qui encapsule la notion d'invocation. Il permet de séparer complètement le code initiateur de l'action, du code de l'action elle-même. Ce patron de conception est souvent utilisé dans les interfaces graphiques où, par exemple, un élément de menu peut être connecté à différentes Commandes de façon que l'objet d'élément de menu n'ait pas besoin de connaître les détails de l'action effectuée par la Commande.

À utiliser lorsqu'il y a prolifération de méthodes similaires, et que le code de l'interface devient difficile à maintenir. Symptômes : Un objet commande sert à communiquer une action à effectuer, ainsi que les arguments requis. Design Pattern Chain of Responsability. Un article de Wikipédia, l'encyclopédie libre.

Design Pattern Chain of Responsability

Cet article ou cette section peut contenir un travail inédit ou des déclarations non vérifiées(indiquez la date de pose grâce au paramètre date). Vous pouvez aider en ajoutant des références. En génie logiciel, le patron de conception chaîne de responsabilité permet à un nombre quelconque de classes d'essayer de répondre à une requête sans connaître les possibilités des autres classes sur cette requête. Cela permet de diminuer le couplage entre objets. Le seul lien commun entre ces objets étant cette requête qui passe d'un objet à l'autre jusqu'à ce que l'un des objets puisse répondre.

Utilisation[modifier | modifier le code] Dès lors qu'une information doit recevoir plusieurs traitements, ou juste être transmise entre différents objets. Exemple en langage C++[modifier | modifier le code] Design Pattern Composite. Un article de Wikipédia, l'encyclopédie libre.

Design Pattern Composite

Cet article ou cette section peut contenir un travail inédit ou des déclarations non vérifiées(indiquez la date de pose grâce au paramètre date). Vous pouvez aider en ajoutant des références. Voir la page de discussion pour plus de détails. En génie logiciel, un objet composite est un patron de conception (design pattern) structurel. Ce patron permet de concevoir une structure d'arbre, comme un arbre binaire en limitant à deux le nombre de sous-éléments. Motivation[modifier | modifier le code] Design Pattern Decorator. Design Pattern Façade. Un article de Wikipédia, l'encyclopédie libre.

Design Pattern Façade

Cet article ou cette section peut contenir un travail inédit ou des déclarations non vérifiées(indiquez la date de pose grâce au paramètre date). En génie logiciel, le patron de conception (ou design pattern) façade a pour but de cacher une conception et une interface complexe difficile à comprendre (cette complexité étant apparue « naturellement » avec l'évolution du sous-système en question). La façade permet de simplifier cette complexité en fournissant une interface simple du sous-système. Habituellement, la façade est réalisée en réduisant les fonctionnalités de ce dernier, mais en fournissant toutes les fonctions nécessaires à la plupart des utilisateurs. La façade encapsule la complexité des interactions entre les objets métier participant à un workflow. Une façade peut être utilisée pour : Façade La façade fait abstraction des packages 1, 2 et 3 du reste de l'application. Design Pattern Factory Method.

Un article de Wikipédia, l'encyclopédie libre.

Design Pattern Factory Method

Cet article ou cette section peut contenir un travail inédit ou des déclarations non vérifiées(indiquez la date de pose grâce au paramètre date). Pour les articles homonymes, voir Fabrique. La fabrique (factory method) est un patron de conception créationnel utilisé en programmation orientée objet. Design Pattern Flyweight. Un article de Wikipédia, l'encyclopédie libre.

Design Pattern Flyweight

Cet article ou cette section peut contenir un travail inédit ou des déclarations non vérifiées(indiquez la date de pose grâce au paramètre date). L'article doit être débarrassé d'une partie de son jargon (indiquez la date de pose grâce au paramètre date). En génie logiciel, le poids-mouche est un patron de conception (design pattern) structurel. Lorsque de nombreux (petits) objets doivent être manipulés, mais qu'il serait trop coûteux en mémoire s'il fallait instancier tous ces objets, il est judicieux d'implémenter le poids-mouche.

Dans le cas d'une classe représentant des données, il est parfois possible de réduire le nombre d'objets à instancier si tous ces objets sont semblables et se différencient sur quelques paramètres. Le patron poids-mouche est l'approche pour utiliser de telles classes. Un exemple classique du patron poids-mouche : les caractères manipulés dans un traitement de texte. Design Pattern Interpreter. Un article de Wikipédia, l'encyclopédie libre.

Design Pattern Interpreter

Cet article ou cette section peut contenir un travail inédit ou des déclarations non vérifiées(indiquez la date de pose grâce au paramètre date). En génie logiciel, le patron de conception interpréteur est utilisé pour des logiciels ayant besoin d'un langage afin de décrire les opérations qu'ils peuvent réaliser. Le modèle de conception interpréteur définit la grammaire de ce langage et utilise celle-ci pour interpréter des états dans ce langage. Ce patron de conception est très utile dans deux cas : lorsque le logiciel doit analyser/parser une chaîne algébrique. Ce patron définit comment interpréter les éléments du langage. Dans ce patron de conception, il y a une classe par symbole terminal et non-terminal du langage à interpréter. Design Pattern Iterator. Un article de Wikipédia, l'encyclopédie libre.

Cet article ou cette section peut contenir un travail inédit ou des déclarations non vérifiées(indiquez la date de pose grâce au paramètre date). Vous pouvez aider en ajoutant des références. Design Pattern Mediator. Un article de Wikipédia, l'encyclopédie libre. Cet article ou cette section peut contenir un travail inédit ou des déclarations non vérifiées(indiquez la date de pose grâce au paramètre date).

Le modèle de conception médiateur résout ce problème. Pour ce faire, le médiateur est la seule classe ayant connaissance des interfaces des autres classes. Lorsqu'une classe désire interagir avec une autre, elle doit passer par le médiateur qui se chargera de transmettre l'information à la ou les classes concernées. Design Pattern Memento. Un article de Wikipédia, l'encyclopédie libre. Cet article ou cette section peut contenir un travail inédit ou des déclarations non vérifiées(indiquez la date de pose grâce au paramètre date).

Vous pouvez aider en ajoutant des références. Pour les articles homonymes, voir Memento. Le mémento est utilisé par deux objets : le créateur et le gardien. Le créateur est un objet ayant un état interne (état à sauvegarder). Afin de ne pas casser le principe d'encapsulation, l'objet mémento est opaque (le gardien ne peut, ou ne devrait pas, le modifier). Des exemples classiques du patron mémento incluent le générateur de nombres pseudo-aléatoires, la machine à états finis, la fonction « annulation ». Portail de la programmation informatique. Design Pattern Observer. Un article de Wikipédia, l'encyclopédie libre. Cet article ou cette section peut contenir un travail inédit ou des déclarations non vérifiées(indiquez la date de pose grâce au paramètre date). diagramme UML du patron de conception Observateur La notion d'observateur et d'observable permet de coupler des modules de façon à réduire les dépendances aux seuls phénomènes observés.

Design Pattern Prototype. Design Pattern Proxy. Design Pattern Singleton. Design Pattern State. Design Pattern Strategy. Design Pattern Template Method. Design Pattern Visitor. Design Pattern Modèle-Vue-Contrôleur (Observer, Composite, Strategy) Design Pattern Adapteur. Design pattern Fabrique (Factory Method) Le design pattern Fabrique (Factory Method) définit une interface pour la création d'un objet en déléguant à ses sous-classes le choix des classes à instancier. Description du problème Il est fréquent de devoir concevoir une classe qui va instancier différents types d'objets suivant un paramètre fourni. Par exemple une usine va fabriquer des produits en fonction du modèle qu'on lui indique.L'idée la plus simple pour répondre à ce besoin est d'écrire une succession de conditions qui suivant le modèle demandé, instancie et retourne l'objet correspondant.

Le problème avec cette implémentation, c'est que la classe correspondant à l'usine va être fortement couplée à tous les produits qu'elle peut instancier car elle fait appel à leur type concret.Or ce code va être amené à évoluer régulièrement lors de l'ajout de nouveaux produits à fabriquer ou de la suppression de certains produits obsolètes. Design patterns - Les derniers contenus ajoutés. Introduction aux Design Patterns en Java. L'approche orientée objet tend à éclater les applications en composants plus simples et réutilisables.

Cependant, cette approche peut vite devenir un piège lorsque le découpage s'effectue sans règles précises. Le concepteur finit par être saturé par la complexité du codage (effet spaghetti). J'en veux pour preuve ma propre expérience sur une application Java d'environ 40000 lignes de code.