0% ont trouvé ce document utile (0 vote)
37 vues18 pages

Chapitre 03

Transféré par

khazerimeriem
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
37 vues18 pages

Chapitre 03

Transféré par

khazerimeriem
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Chapitre 03

Les patrons de conception


(Design Patterns)
Introduction(1/2)
 il est difficile de développer des logiciels efficaces, robustes,
extensibles et réutilisable

 Ecrire des éléments modifiables est difficile, des éléments


réutilisable est encore plus difficile;

 Une conception flexible et réutilisable est rarement obtenue du


premier jet;

 Mais avec l'expérience on tend a produire de la bonne


conception;

2
Introduction(2/2)
 Il est essentiel de comprendre et adapté les techniques
bien éprouvées, qui ont déjà montré leur capacité à
résoudre des problèmes de développement récurrents
: des patrons de conception ;

 Un bon concepteur se doit de connaître un certain


nombre de patrons importants et de savoir quand les
utiliser.

3
Définition
 Un patron de conception (design pattern) est une solution
éprouvée à un problème récurrent dans la conception orientée
objet de logiciels.

 Les patrons sont décrits au niveau conception et sont donc


indépendants des langages de programmation utilisés.

 Pour faire l'objet d'un Design Pattern, une solution doit être
réutilisable. On dit que le Design Pattern est « prouvé » s'il a
pu être utilisé dans au moins 3 cas

4
Historique(1/2)
 A l'origine les Design Patterns (Patron de
conception, Motif de conception, Modèle de
conception en Français) sont issus des travaux de
l'architecte Christopher Alexander.

 Ces travaux sont une capitalisation d'expérience qui


ont mis en évidence des patrons en architecture des
bâtiments.

5
Historique(2/2)
 Sur le même principe, en 1995, le livre "Design Patterns
-- Elements of Reusable Object-Oriented Software" du
GoF, Gang Of Four (Erich Gamma, Richard Helm,
Ralph Johnson et John Vlissides), présente 23 Design
Patterns. (le catalogue de la bande des quatre).

 Dans ce livre, chacun des Design Patterns est


accompagné d'exemple en C++ et Smalltalk.

6
Principes des patrons(1/2)
 Renforcer la cohésion et diminuer le couplage;

 Réutiliser et modifier sans changer l’existant;

 Représenter par des diagrammes de classes UML avec les


relations : association, agrégation, composition, héritage et
Abstraction (classe abstraite et interfaces);

 Privilégier l’encapsulation forte : description d'une solution


à un problème général et récurrent de conception dans un
contexte particulier;

7
Principes des patrons (2/2)
 Favoriser des abstractions pour définir les interfaces
communes à un ensemble de classe plutôt des
implémentations concrètes (classes);
 Favoriser la composition sur l’héritage pour :

-permettre le changement de comportement pendant


l’exécution,
-maintenir l’encapsulation des classes et se concentrer sur
une seule tâche,
-réduire les dépendances de l’implémentation.

8
Intérêts
 Les patrons Aide au développement de logiciels par la
réutilisation de l’expérience collective des ingénieurs
expérimentés en informatique
 Les patrons de conception permettent de diffuser largement
les meilleures solutions connues à différents problèmes
récurrents.
 Les patrons Aide à promouvoir les bonnes pratiques de
conception, en capturant les expériences existantes et bien
validées en développement logiciel
 Les patrons facilitent la communication entre les développeurs
et Aide à la gestion de la complexité du logiciel

9
Catégories de design patterns

On distingue trois familles de patrons de conception selon leur


utilisation :

 de création : création d'objets sans passer par l'instantiation


directe d'une classe

 structuraux : assemblage de classes et d'objets.

 comportementaux : modélisation des interaction de classes et


d'objets et de la répartition des responsabilités

10
Les patrons de GOF(1/3)
Les Patrons de conception les plus répandus du GoF sont :
Création
 Fabrique abstraite (Abstract Factory) : permet la création de familles
d'objets ayant un lien ou interdépendants
 Monteur (Builder) : déplace la logique de construction d'un objet en dehors
de la classe à instancier, pour permettre une construction partielle ou pour
simplifier l'objet
 Fabrique (Factory Method) : laisse autre développeur de définir l'interface
permettant de créer un objet, tout en gardant un contrôle sur le choix de la
classe à instancier.
 Prototype (Prototype) : fournit de nouveaux objets par la copie d'un exemple
 Singleton (Singleton) : garantit qu'une classe ne possède qu'une seule
instance, et fournit un point d'accès global à celle-ci

11
Les patrons de GOF(2/3)
Structure
 Adaptateur (Adapter) : fournit l'interface qu'un client attend en utilisant les
services d'une classe dont l'interface est différente.
 Pont (Bridge) : découple une classe qui s'appuie sur des opérations abstraites
de l'implémentation de ces opérations, permettant ainsi à la classe et à son
implémentation de varier indépendamment.
 Objet composite (Composite) : permet aux clients de traiter de façon
uniforme des objets individuels et des compositions d'objets. Cela promeut un
couplage lâche, évitant aux objets d'avoir à se référer les uns les autres, et
permet de varier leur interaction indépendamment.
 Décorateur (Decorator) : permet de composer dynamiquement le
comportement d'un objet
 Façade (Facade) : fournit une interface simplifiant l'emploi d'un sous-système

12
Les patrons de GOF(3/3)
Comportement
 Chaîne de responsabilité (Chain of responsibility) : évite de coupler
l'émetteur d'une requête à son récepteur en permettant à plus d'un objet d'y
répondre.
 Commande (Command) : encapsule une requête dans un objet, de manière à
pouvoir paramétrer des clients au moyen de divers types de requêtes
 Interpréteur (Interpreter) : permet de composer des objets exécutables
d'après un ensemble de règles de composition que vous définissez.
 Itérateur (Iterator) : fournit un moyen d'accéder de façon séquentielle aux
éléments d'une collection.
 Médiateur (Mediator) : définit un objet qui encapsule la façon dont un
ensemble d'objets interagissent I
 Mémento (Memento) : permet le stockage et la restauration de l'état d'un
objet.

13
Portée des Design Patterns

 Portée de Classe
 Focalisation sur les relations entre classes et leurs sous-
classes
 Réutilisation par héritage

 Portée d’Instance (Objet)


 Focalisation sur les relations entre les objets

 Réutilisation par composition

14
Le catalogue GOF patterns

15
Conclusion(1/3)
A RETENIR

 Un patron de conception est la meilleure solution connue pour un problème de


conception récurent

 Les patrons sont indépendants des langages de programmation utilisés

 Ils facilitent la conception

 Ils représentent un catalogues de solution et une boite à outils pour tout


développeur et concepteur

 Ils sont le fruit du savoir-faire d’experts dans des contextes éprouvés ils sont
fiables, robustes et connus

16
Conclusion(2/3)
A RETENIR

17
Conclusion(3/3)
A RETENIR

• ALGORITHME : recette de cuisine les étapes sont claires et on est


guidés par un objectifs précis
• Patron : on a un plan : on peut voir les fonctionnalités ,les résultats
obtenus mais la manière de les implémenter nous revient donc ça
dépend du contexte.

18

Vous aimerez peut-être aussi