0% ont trouvé ce document utile (0 vote)
12 vues37 pages

Designpattern

Le document présente les patrons de conception en génie logiciel, qui sont des solutions éprouvées à des problèmes récurrents dans la conception d'applications orientées objet. Il classifie ces patrons en trois catégories : créationnels, structuraux et comportementaux, et fournit des exemples et des implémentations pour certains d'entre eux, tels que Singleton, Factory, et Observer. Les patrons de conception permettent de créer des composants logiciels réutilisables, extensibles et maintenables.

Transféré par

Houssem Farah
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)
12 vues37 pages

Designpattern

Le document présente les patrons de conception en génie logiciel, qui sont des solutions éprouvées à des problèmes récurrents dans la conception d'applications orientées objet. Il classifie ces patrons en trois catégories : créationnels, structuraux et comportementaux, et fournit des exemples et des implémentations pour certains d'entre eux, tels que Singleton, Factory, et Observer. Les patrons de conception permettent de créer des composants logiciels réutilisables, extensibles et maintenables.

Transféré par

Houssem Farah
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
Vous êtes sur la page 1/ 37

1. Présentation 2. Les Patrons créationnels 3. Les Patrons structuraux 4.

Les Patrons comportementaux

Génie Logiciel :
Les patrons de Conception (Design Patterns)

Dr. Selma Belgacem Ben Mansour

ISSAT de Sousse

2020-2021

1/37
1. Présentation 2. Les Patrons créationnels 3. Les Patrons structuraux 4. Les Patrons comportementaux

Plan du cours

1. Présentation

2. Les Patrons créationnels

3. Les Patrons structuraux

4. Les Patrons comportementaux

2/37
1. Présentation 2. Les Patrons créationnels 3. Les Patrons structuraux 4. Les Patrons comportementaux

Plan du cours

1. Présentation

2. Les Patrons créationnels

3. Les Patrons structuraux

4. Les Patrons comportementaux

3/37
1. Présentation 2. Les Patrons créationnels 3. Les Patrons structuraux 4. Les Patrons comportementaux

Présentation

ˆ "Un patron de conception est une solution éprouvée à un problème


récurrent dans la conception d'applications orientées objet".
(Régis Clouard)
ˆ Un patron de conception permet de modéliser un module
élémentaire (une partie) d'un logiciel.
ˆ Les patrons de conception permettent de produire des composants
logiciel réutilisables, extensibles et facilement maintenables.
ˆ Les patrons de conception sont initialement inventées par
Christopher Alexander, un architecte américain, dans les années
70.
ˆ Les patrons de conception les plus connus sont ocialisés en 1994
dans le livre "Design Patterns : Elements of Reusable
Object-Oriented Software " des américains Gamma, Helm, Johnson
et Vlissides connus par le nom Gang of Four (GoF).

4/37
1. Présentation 2. Les Patrons créationnels 3. Les Patrons structuraux 4. Les Patrons comportementaux

Présentation

• Les patrons de conception GoF sont 23 patrons classiés sous trois


catégories :
Catégorie Création Structure Comportement
de pa-
trons
Dénition modélisation modélisation modélisation du
du processus d'une composi- comportement algo-
d'instanciation tion spécique rithmique pour des
pour des classe d'une partie du classes spéciques
spéciques logiciel
Patrons Abstract Adapter/ Chain of responsa-
Factory/ Buil- Bridge/ Com- bility/ Command/
der/ Factory posite/ Deco- Interpreter/ Ite-
Method/ rator/ Facade/ rator/ Memento/
Prototype/ Mediator/ Observer/ State/
Singleton Flyweight/ Strategy/ Template
Proxy Method/ Visitor

5/37
1. Présentation 2. Les Patrons créationnels 3. Les Patrons structuraux 4. Les Patrons comportementaux

Plan du cours

1. Présentation

2. Les Patrons créationnels

3. Les Patrons structuraux

4. Les Patrons comportementaux

6/37
1. Présentation 2. Les Patrons créationnels 3. Les Patrons structuraux 4. Les Patrons comportementaux

Le patron Singleton
ˆ Nom : Singleton
ˆ But : garantir qu'une classe n'a qu'une seule instance.
ˆ Exemple :
- Il n'existe à un instant donné qu'une seule équipe championne du
monde de football.
- Plusieurs fenêtres sont présentes sur un écran, mais il ne peut y avoir
qu'un seul gestionnaire de ces fenêtres.
ˆ Solution : la classe singleton gère sa propre instanciation, ses clients
(les classes qui communiquent avec) ne s'en chargent pas.
ˆ Structure :

Régis Clouard, "Chapitre 3 : Catalogue de patrons de conception", ENSICAEN.

7/37
1. Présentation 2. Les Patrons créationnels 3. Les Patrons structuraux 4. Les Patrons comportementaux

Le patron Singleton
ˆ Implémentation :

Régis Clouard, "Chapitre 3 : Catalogue de patrons de conception", ENSICAEN.

8/37
1. Présentation 2. Les Patrons créationnels 3. Les Patrons structuraux 4. Les Patrons comportementaux

Le patron Factory
ˆ Nom : Factory method
ˆ But : abstraire (cacher à la classe cliente) le processus
d'instanciation selon le type du produit.
ˆ Solution : déléguer la tâche de création d'un type de produit à une
classe spécique appelée Factory.
ˆ Structure :

Régis Clouard, "Chapitre 3 : Catalogue de patrons de conception", ENSICAEN.

9/37
1. Présentation 2. Les Patrons créationnels 3. Les Patrons structuraux 4. Les Patrons comportementaux

Le patron Factory
ˆ Exemple :

https://www.tutorialspoint.com/design_pattern/factory_pattern.htm

10/37
1. Présentation 2. Les Patrons créationnels 3. Les Patrons structuraux 4. Les Patrons comportementaux

Le patron Factory

ˆ Implémentation :

https://www.tutorialspoint.com/design_pattern/factory_pattern.htm

11/37
1. Présentation 2. Les Patrons créationnels 3. Les Patrons structuraux 4. Les Patrons comportementaux

Le patron Abstract Factory

ˆ Nom : Abstract Factory


ˆ But : abstraire (cacher à la classe cliente) le processus
d'instanciation selon la famille de produits.
ˆ Solution : déléguer la tâche de création d'un type de produit à des
classes spéciques aux familles des produits, appelées Concrete
Factories. Les concrete Factories héritent d'une classe Absract
Factory.

12/37
1. Présentation 2. Les Patrons créationnels 3. Les Patrons structuraux 4. Les Patrons comportementaux

Le patron Abstract Factory


ˆ Structure :

Régis Clouard, "Chapitre 3 : Catalogue de patrons de conception", ENSICAEN.

13/37
1. Présentation 2. Les Patrons créationnels 3. Les Patrons structuraux 4. Les Patrons comportementaux

Le patron Abstract Factory


ˆ Exemple :

https://www.tutorialspoint.com/design_pattern/abstract_factory_pattern.htm
14/37
1. Présentation 2. Les Patrons créationnels 3. Les Patrons structuraux 4. Les Patrons comportementaux

Le patron Abstract Factory

ˆ Implémentation :

https://www.tutorialspoint.com/design_pattern/abstract_factory_pattern.htm

15/37
1. Présentation 2. Les Patrons créationnels 3. Les Patrons structuraux 4. Les Patrons comportementaux

Plan du cours

1. Présentation

2. Les Patrons créationnels

3. Les Patrons structuraux

4. Les Patrons comportementaux

16/37
1. Présentation 2. Les Patrons créationnels 3. Les Patrons structuraux 4. Les Patrons comportementaux

Le patron Composite

ˆ Nom : Composite
ˆ But : unier la modélisation du composant et du composite tout en
gardant une hiérarchie entre les deux.
ˆ Solution : créer une interface commune implémentée par les
composants et le composite.

17/37
1. Présentation 2. Les Patrons créationnels 3. Les Patrons structuraux 4. Les Patrons comportementaux

Le patron Composite
ˆ Structure :

Régis Clouard, "Chapitre 3 : Catalogue de patrons de conception", ENSICAEN.


18/37
1. Présentation 2. Les Patrons créationnels 3. Les Patrons structuraux 4. Les Patrons comportementaux

Le patron Composite
ˆ Exemple :

Pierre Gérard, "Introduction à UML 2 Modélisation Orientée Objet de Systèmes Logiciels", Université de 19/37
1. Présentation 2. Les Patrons créationnels 3. Les Patrons structuraux 4. Les Patrons comportementaux

Le patron Composite
ˆ Implémentation :

https://fr.wikipedia.org/wiki/Objet_composite

20/37
1. Présentation 2. Les Patrons créationnels 3. Les Patrons structuraux 4. Les Patrons comportementaux

Le patron Adapter

ˆ Nom : Adapter
ˆ But : réutiliser une classe existante en l'adaptant à de nouveaux
besoins.
ˆ Solution : créer une classe adptatrice (Adapter ) qui instancie (ou
étend) la classe existante (Adaptee ) et fournir les services de
l'adapter aux classes clientes à travers une interface cible (Target ).

21/37
1. Présentation 2. Les Patrons créationnels 3. Les Patrons structuraux 4. Les Patrons comportementaux

Le patron Adapter
ˆ Structure :

Régis Clouard, "Chapitre 3 : Catalogue de patrons de conception", ENSICAEN.


22/37
1. Présentation 2. Les Patrons créationnels 3. Les Patrons structuraux 4. Les Patrons comportementaux

Le patron Adapter
ˆ Implémentation :

https://www.journaldev.com/1487/adapter-design-pattern-java

23/37
1. Présentation 2. Les Patrons créationnels 3. Les Patrons structuraux 4. Les Patrons comportementaux

Le patron Bridge
ˆ Nom : Bridge
ˆ But : réduire la dépendance dans la hiérarchie d'héritage.
ˆ Solution : dissocier les entités (Absraction) du traitement logique
(Implementor ) an de faciliter la maintenance (extension ou
modication) de chacun d'eux.
ˆ Structure :

Régis Clouard, "Chapitre 3 : Catalogue de patrons de conception", ENSICAEN.

24/37
1. Présentation 2. Les Patrons créationnels 3. Les Patrons structuraux 4. Les Patrons comportementaux

Le patron Bridge
ˆ Exemple : modélisation sans application du patron Bridge.

https://www.geeksforgeeks.org/bridge-design-pattern/

25/37
1. Présentation 2. Les Patrons créationnels 3. Les Patrons structuraux 4. Les Patrons comportementaux

Le patron Bridge

ˆ Exemple : modélisation avec application du patron Bridge.

https://www.geeksforgeeks.org/bridge-design-pattern/

26/37
1. Présentation 2. Les Patrons créationnels 3. Les Patrons structuraux 4. Les Patrons comportementaux

Le patron Bridge

ˆ Implémentation :

https://www.geeksforgeeks.org/bridge-design-pattern/

27/37
1. Présentation 2. Les Patrons créationnels 3. Les Patrons structuraux 4. Les Patrons comportementaux

Plan du cours

1. Présentation

2. Les Patrons créationnels

3. Les Patrons structuraux

4. Les Patrons comportementaux

28/37
1. Présentation 2. Les Patrons créationnels 3. Les Patrons structuraux 4. Les Patrons comportementaux

Le patron Observer
ˆ Nom : Observer
ˆ But : le changement de l'état d'un objet (sujet détenteur de
données) doit entraîner la mise à jour des états d'un ensemble
d'objet (observateurs).
ˆ Solution : le sujet devient composable par les observateurs et doit
déclencher leur mise à jour lors du changement de son état.
ˆ Structure :

Régis Clouard, "Chapitre 3 : Catalogue de patrons de conception", ENSICAEN.

29/37
1. Présentation 2. Les Patrons créationnels 3. Les Patrons structuraux 4. Les Patrons comportementaux

Le patron Observer
ˆ Exemple : Souvent le sujet représente des données et les
observateurs représentent des vues.

Régis Clouard, "Chapitre 3 : Catalogue de patrons de conception", ENSICAEN.

30/37
1. Présentation 2. Les Patrons créationnels 3. Les Patrons structuraux 4. Les Patrons comportementaux

Le patron Observer
ˆ Implémentation :

https://fr.wikipedia.org/wiki/Observateur_(patron_de_conception)
31/37
1. Présentation 2. Les Patrons créationnels 3. Les Patrons structuraux 4. Les Patrons comportementaux

Le patron Strategy
ˆ Nom : Strategy
ˆ But : unier l'accès à plusieurs variantes d'un algorithme.
ˆ Solution : encapsuler les diérentes variantes de l'algorithme dans
des classes qui implémentent une même interface accessible par la
classe cliente.
ˆ Structure :

Régis Clouard, "Chapitre 3 : Catalogue de patrons de conception", ENSICAEN.

32/37
1. Présentation 2. Les Patrons créationnels 3. Les Patrons structuraux 4. Les Patrons comportementaux

Le patron Strategy
ˆ Exemple :

Régis Clouard, "Chapitre 3 : Catalogue de patrons de conception", ENSICAEN.

ˆ Autres patrons liés :


- Il existe un autre patron de conception Policy qui généralise le patron
de conception Strategy en uniant l'accès à diérentes variantes d'un
ensemble d'algorithmes logiquement liés au lieu d'un seul algorithme.
- Le patron de conception Strategy ressemble à un autre patron de
conception de comportement Template Method mais le point de
diérence est que le patron Template Method spécie un squelette
et un comportement par défaut à l'algorithme et le met en facteur
dans une classe abstraite surchargée par des sous-classes an de
spécialiser le comportement de l'algorithme.
33/37
1. Présentation 2. Les Patrons créationnels 3. Les Patrons structuraux 4. Les Patrons comportementaux

Le patron Strategy
ˆ Implémentation :

https://www.journaldev.com/1754/strategy-design-pattern-in-java-example-tutorial
34/37
1. Présentation 2. Les Patrons créationnels 3. Les Patrons structuraux 4. Les Patrons comportementaux

Le patron Template Method


ˆ Nom : Template Method
ˆ But : unier l'accès à plusieurs variantes d'un algorithme en uniant
son squelette et son comportement par défaut.
ˆ Solution : encapsuler les diérentes variantes de l'algorithme dans
des classes qui étendent une même classe abstraite accessible par le
client responsable du choix de la variante de l'algorithme. La classe
abstraite contient une méthode qui implémente le squelette de
l'algorithme et des méthodes qui implémentent le comportement par
défaut des diérentes parties de l'algorithme.
ˆ Structure :

Régis Clouard, "Chapitre 3 : Catalogue de patrons de conception", ENSICAEN.

35/37
1. Présentation 2. Les Patrons créationnels 3. Les Patrons structuraux 4. Les Patrons comportementaux

Le patron Template Method

ˆ Implémentation :

https://www.journaldev.com/1763/template-method-design-pattern-in-java

36/37
1. Présentation 2. Les Patrons créationnels 3. Les Patrons structuraux 4. Les Patrons comportementaux

Références

ˆ Régis Clouard, "Chapitre 3 : Catalogue de patrons de conception",


ENSICAEN.
ˆ Jean-Yves Didier, "Les patrons de conception", Université de Evry.
ˆ Stefano Zacchiroli, "Génie Logiciel Avancé : Cours 5 - Conception
d'un système d'objets ", Université Paris Diderot, 2013-2014.
ˆ https://www.journaldev.com/1827/
java-design-patterns-example-tutorial
ˆ https:
//www.tutorialspoint.com/design_pattern/index.htm
ˆ https://sourcemaking.com/design_patterns
ˆ https://fr.wikipedia.org/wiki/Patron_de_conception

37/37

Vous aimerez peut-être aussi