Document Details

InnovativeViolet2476

Uploaded by InnovativeViolet2476

Sorbonne Université - Faculté des Sciences (Paris VI)

Tags

design patterns java software development object-oriented programming

Summary

Ce document décrit différents design patterns en Java, classés en catégories telles que les design patterns créationnels, structurels et comportementaux. Le document explique chaque pattern avec des exemples clairs et concis.

Full Transcript

--- ### **1. Design Patterns Créationnels** Les design patterns créationnels se concentrent sur les mécanismes de création d'objets tout en masquant leur logique de création pour rendre le système indépendant des classes concrètes. Les principaux patterns abordés sont : -...

--- ### **1. Design Patterns Créationnels** Les design patterns créationnels se concentrent sur les mécanismes de création d'objets tout en masquant leur logique de création pour rendre le système indépendant des classes concrètes. Les principaux patterns abordés sont : - **Factory** : - Permet de produire des objets d’une même famille sans dépendre des classes concrètes. - Exemple : Classe `Ebeniste` produisant des meubles dans di érents styles (moderne, art déco, ancien). - **Builder** : - Gère la création d'objets complexes étape par étape. - Utilisé pour éviter les constructeurs "télescopiques" avec de nombreux paramètres. - Exemple : Construction de pizzas avec des étapes dé nies (pâte, base, garniture). - **Singleton** : - Garantit qu'une classe ait une seule instance et fournit un point d'accès global. - Utilisation courante pour les gestionnaires de ressources ou de con guration. - **Prototype** : - Crée des objets en copiant des instances existantes, sans dépendre de leurs classes concrètes. - Exemple : Méthode `clone()` en Java pour le clonage super ciel ou en profondeur. --- ### **2. Design Patterns Structurels** Les patterns structurels traitent de l'assemblage et de l'organisation des objets pour former des structures complexes tout en conservant une exibilité. Les principaux patterns incluent : - **Adapter** : - Convertit une interface en une autre attendue par le client. - Exemple : Adapter des chiers JSON à une librairie XML. - **Composite** : - Organise des objets en hiérarchies arborescentes pour manipuler de manière homogène des feuilles et des nœuds. - Exemple : Systèmes de chiers ( chiers simples et répertoires). - **Decorator** : - Ajoute dynamiquement des fonctionnalités à un objet. - Exemple : Voitures avec di érentes options (diesel, turbo). - **Proxy** : - Fournit un substitut à un autre objet pour contrôler l'accès, réduire les coûts ou ajouter des fonctionnalités. - Exemple : Proxy de sécurité ou proxy distant pour des objets lourds. - **Facade** : - O re une interface simpli ée pour interagir avec un système complexe. - Exemple : Gestion d’une application vidéo utilisant de multiples librairies. --- ff fi fi fi ff fi fl fi fi ff fi ### **3. Design Patterns Comportementaux** Ces patterns dé nissent comment les objets interagissent et partagent des responsabilités. Les principaux patterns abordés sont : - **Template Method** : - Dé nit le squelette d’un algorithme dans une superclasse, avec des étapes spéci ques redé nies dans des sous-classes. - Exemple : Traitement de chiers (PDF, DOC, CSV) avec des étapes communes et spéci ques. - **Strategy** : - Dé nit une famille d'algorithmes interchangeables de manière dynamique. - Exemple : Itinéraires di érents (vélo, voiture, à pied) dans une application GPS. - **State** : - Change le comportement d'un objet en fonction de son état, sans changer son instance. - Exemple : Modélisation des états d'une porte de métro (ouverte, fermée, verrouillée). - **Command** : - Encapsule une requête en tant qu'objet autonome, permettant sa plani cation ou son annulation. - Exemple : Boutons d'une barre de menu dans une application graphique. - **Visitor** : - Sépare les algorithmes des objets sur lesquels ils opèrent, facilitant l'ajout de nouvelles opérations. - Exemple : Export de données en XML, JSON ou YAML sans modi er les classes de données. fi fi fi fi ff fi fi fi fi fi

Use Quizgecko on...
Browser
Browser