Design patterns : résumé
-
Upload
boubker-aberwag -
Category
Education
-
view
192 -
download
3
Transcript of Design patterns : résumé
![Page 1: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/1.jpg)
DESIGN PATTERNS
![Page 2: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/2.jpg)
Boubker ABERWAG
Développeur Java/JEE IBM Client Innovation [email protected][email protected]
https://www.linkedin.com/in/boubkeraberwag
http://www.viadeo.com/fr/profile/boubker.aberwag
![Page 3: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/3.jpg)
ABSTRACT FACTORY
![Page 4: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/4.jpg)
Abstract Factory
Fournir une interface pour créer des objets d'une même famille sans préciser leurs classes concrètes.
¨Permet d'isoler l'appartenance à une famille de classes.
Résultats
Objectifs
![Page 5: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/5.jpg)
Abstract Factory – Diagramme de classes
![Page 6: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/6.jpg)
BUILDER
![Page 7: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/7.jpg)
Builder
• Séparer la construction d'un objet complexe de sa représentation.
Permet d'isoler des variations de représentations d'un objet.
• Permettre d'obtenir des représentations différentes avec le même procédé de construction.
Résultats
Objectifs
![Page 8: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/8.jpg)
Builder – Diagramme de classes
![Page 9: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/9.jpg)
COMPOSITE
![Page 10: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/10.jpg)
Composite
• Organiser les objets en structure arborescente afin de représenter une hiérarchie
Permet d'isoler l'appartenance à un agrégat
• Permettre à la partie cliente de manipuler un objet unique et un objet composé de la même manière
Résultats
Objectifs
![Page 11: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/11.jpg)
Composite– Diagramme de classes
![Page 12: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/12.jpg)
DECORATOR / WRAPPER
![Page 13: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/13.jpg)
Decorator/Wrapper
• Ajouter dynamiquement des responsabilités (non obligatoires) à un objet
Permet d'isoler les responsabilités d'un objet
• Eviter de sous classer la classe pour rajouter ces responsabilités
Résultats
Objectifs
![Page 14: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/14.jpg)
Decorator/Wrapper – Diagramme de classes
![Page 15: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/15.jpg)
FACADE
![Page 16: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/16.jpg)
Facade
• Fournir une interface unique en remplacement d'un ensemble d'interfaces d'un sous-système
Permet d'isoler les fonctionnalités d'un sous-système utiles à la partie cliente
• Définir une interface de haut niveau pour rendre le sous-système plus simple d'utilisation
Résultats
Objectifs
![Page 17: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/17.jpg)
Facade– Diagramme de classes
![Page 18: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/18.jpg)
MEDIATOR
![Page 19: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/19.jpg)
Mediator
• Gérer la transmission d'informations entre des objets interagissant entre eux
Permet d'isoler la communication entre des objets
• Avoir un couplage faible entre les objets puisqu'ils n'ont pas de lien direct entre eux
Résultats
Objectifs
• Pouvoir varier leur interaction indépendamment
![Page 20: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/20.jpg)
Mediator– Diagramme de classes
![Page 21: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/21.jpg)
STATE
![Page 22: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/22.jpg)
State
• Changer le comportement d'un objet selon son état interne
Permet d'isoler les algorithmes propres à chaque état d'un objet
Résultats
Objectifs
![Page 23: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/23.jpg)
State– Diagramme de classes
![Page 24: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/24.jpg)
STRATEGY
![Page 25: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/25.jpg)
Strategy
• Définir une famille d'algorithmes interchangeables
Permet d'isoler les algorithmes appartenant à une même famille d'algorithmes
• Permettre de les changer indépendamment de la partie cliente
Résultats
Objectifs
![Page 26: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/26.jpg)
Strategy– Diagramme de classes
![Page 27: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/27.jpg)
TEMPLATE METHOD
![Page 28: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/28.jpg)
Template Method
• Définir le squelette d'un algorithme en déléguant certaines étapes à des sous-classes
Permet d'isoler les parties variables d'un algorithmeRésultats
Objectifs
![Page 29: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/29.jpg)
Template Method – Diagramme de classes
![Page 30: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/30.jpg)
COMMAND
![Page 31: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/31.jpg)
Command
• Encapsuler une requête sous la forme d'objet
Permet d'isoler une requêteRésultats
Objectifs
• Paramétrer facilement des requêtes diverses
• Permettre des opérations réversibles
![Page 32: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/32.jpg)
Command– Diagramme de classes
![Page 33: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/33.jpg)
OBSERVER
![Page 34: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/34.jpg)
Observer
• Prévenir des objets observateurs, enregistrés auprès d'un objet observé, d'un événement
Permet d'isoler un algorithme traitant un événement
Résultats
Objectifs
![Page 35: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/35.jpg)
Observer– Diagramme de classes
![Page 36: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/36.jpg)
PROXY
![Page 37: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/37.jpg)
Proxy
• Fournir un intermédiaire entre la partie cliente et un objet pour contrôler les accès à ce dernier
Permet d'isoler le comportement lors de l'accès à un objet
Résultats
Objectifs
![Page 38: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/38.jpg)
Proxy– Diagramme de classes
![Page 39: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/39.jpg)
BRIDGE
![Page 40: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/40.jpg)
Bridge
• Découpler l'abstraction d'un concept de son implémentation
Permet d'isoler le lien entre une couche de haut niveau et celle de bas niveau
Résultats
Objectifs
• Permettre à l'abstraction et l'implémentation de varier indépendamment
![Page 41: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/41.jpg)
Bridge– Diagramme de classes
![Page 42: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/42.jpg)
ADAPTER
![Page 43: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/43.jpg)
Adapter
• Convertir l'interface d'une classe dans une autre interface comprise par la partie cliente
Permet d'isoler l'adaptation d'un sous-système
Résultats
Objectifs
• Permettre à des classes de fonctionner ensemble, ce qui n'aurait pas été possible sinon (à cause de leurs interfaces incompatibles)
![Page 44: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/44.jpg)
Adapter/héritage– Diagramme de classes
![Page 45: Design patterns : résumé](https://reader034.fdocuments.in/reader034/viewer/2022052606/587388db1a28ab272d8b63f5/html5/thumbnails/45.jpg)
Adapter/Composition– Diagramme de classes