42
Design Patterns Par: Sari Meriem 1 UNIVERSITE de MOHAMED CHERIF MESAADIA SOUK-AHRAS Département de Math & Informatique Exposé sur:

Design patterns french

Embed Size (px)

Citation preview

Page 1: Design patterns french

1

Design Patterns

Par: Sari Meriem

UNIVERSITE de MOHAMED CHERIF MESAADIASOUK-AHRAS

Département de Math & Informatique

Exposé sur:

Page 2: Design patterns french

Motivation

2Meriem Sari GL à Objet 2 2 eme AM GL

Concevoir un logiciel en OO est difficle. Concevoir un logiciel réutilisable en OO est plus difficile.

Difficile de trouver les objets et les rassembler selon le bon niveau de granularité. Difficile de définir les classes, les interfaces et les relations d’héritage entre eux. Difficile d’établir les relations entre les classes.

La conception doit être spécifique à un problem mais suffisament générale pour résoudre des future problèmes.

Page 3: Design patterns french

Motivation

3

Les concepteurs Expèrts réutilise des solutions éxistantes pour résoudre des nouveaux problèmes.

ça cause la Réoccurance des patrons de classes et des différent objets en communication dans plusieurs systèmes.

L’application de ces patrons nous produise un logiciel fléxible, élégant et finalement réutilisable.

Meriem Sari GL à Objet 2 2 eme AM GL

Page 4: Design patterns french

Historique

4

Dans cette présentation on va considéré les patrons de conception publié dans le livre: «Design Patterns - Elements of Reusable Object-Oriented Software» par le GOF.

Meriem Sari GL à Objet 2 2 eme AM GL

Page 5: Design patterns french

Historique

5

Erich Gamma Ralph Johnson John Vlissides Richard Helm

Meriem Sari GL à Objet 2 2 eme AM GL

Page 6: Design patterns french

Plan

6Meriem Sari GL à Objet 2 2 eme AM GL

Définition.

Classification.

State Design Pattern.

Strategy Design Pattern.

Visitor Design Pattern.

Page 7: Design patterns french

Définition

7

Selon Christopher Alexander:

Un patrons décrit un problème qui se produit plusieurs fois.

Il décrit le noyau de la solution à ce problème.

Cette solution peut être utilisé un million de fois, sans jamais la faire de la même manière deux fois.

Meriem Sari GL à Objet 2 2 eme AM GL

Page 8: Design patterns french

Définition

8

Chaque patron a quatre éléments basiques:

Le nom du patron: il décrit le problème dont ce patron résout pour faciliter la documentation et la communication entre les concepteurs et les developpeurs.

Le problème: décrit quand on doit appliquer ce patron.

La solution: décrit l’arrangement générale des éléments (classes et objets ) qui résout le problème.

Les conséquences: décrit les résultats d’appliquer ce patron dont le but est d’évaluer ses alternatives , les coûts et les benefices de son application.

Meriem Sari GL à Objet 2 2 eme AM GL

Page 9: Design patterns french

Classification

9

Les patrons de conception se diffèrent dans leurs granularité et niveau d’abstraction.

Ils sont classifié selon deux critères:

Par but i.e. que fait le patron.

Patrons de Création: concerne le processe de création des objets. Patrons de Structure: manipule la composition des classes ou objets. Patrons de Comportement: s’occupe de la façon comment les classes et les objets s’interagissent .

Par scope i.e. est. ce que ce patron s’applique sur des classes ou des objets.

Meriem Sari GL à Objet 2 2 eme AM GL

Page 10: Design patterns french

Classification

10Meriem Sari GL à Objet 2 2 eme AM GL

Page 11: Design patterns french

Design Patterns

11

Dans cette présentation on va abbordé trois patrons de comportement qui sont:

State design pattern.

Strategy design pattern.

Visitor design pattern.

Meriem Sari GL à Objet 2 2 eme AM GL

Page 12: Design patterns french

State Pattern

12

Définition.

Objectif.

Structure.

Conséquences.

Exemple.

Meriem Sari GL à Objet 2 2 eme AM GL

Page 13: Design patterns french

Définition

13

Connu comme : Objects for States.

Le comportement d’un objet dépend de son état.

Permet à un objet de changer son comportement quand son état interne se change.

Ce changement se fait lors de l’éxécution.

Encapsule les différent comportements d’un meme objet basé sur ses états.

Meriem Sari GL à Objet 2 2 eme AM GL

Page 14: Design patterns french

Objectif

14

Minimise l’utilisation des branchements conditionels qui résulte le changement d’état d’un objet.

Met chaque branche d’une instruction conditionelle dans une classe séparée . Il nous permet de traiter les états d’un objet comme des objets indépendents des autres objets.

Meriem Sari GL à Objet 2 2 eme AM GL

Page 15: Design patterns french

Structure (1)

15Meriem Sari GL à Objet 2 2 eme AM GL

Page 16: Design patterns french

Structure (2)

16

Context: définit l’interface d’intérét pour le client .

State: définit l’interface pour encapsuler le comportement associé à un état particulié de l’objet Context.

Concrete State Subclass: chaque sous classe implemente un comportement associé à un état de l’objet Context.

Meriem Sari GL à Objet 2 2 eme AM GL

Page 17: Design patterns french

Conséquences

17

Le State pattern met tout les comportements associés à un état particulié dans un seul objet.

Quand un objet definit son état courrant de façcon interne, son transition d’état a aucune représentation éxplicite.

Les objets State peuvent etre partagé entre des objets Contexts (Flyweight).

Meriem Sari GL à Objet 2 2 eme AM GL

Page 18: Design patterns french

Exemple (1)

18Meriem Sari GL à Objet 2 2 eme AM GL

Page 19: Design patterns french

Exemple (Implémentation)

19Meriem Sari GL à Objet 2 2 eme AM GL

Page 20: Design patterns french

Exemple (Implémentation)

20Meriem Sari GL à Objet 2 2 eme AM GL

Page 21: Design patterns french

Strategy Pattern

21Meriem Sari GL à Objet 2 2 eme AM GL

Définition.

Objectif.

Structure.

Conséquences.

Exemple.

Page 22: Design patterns french

Définition

22Meriem Sari GL à Objet 2 2 eme AM GL

Connu comme: Policy pattern.

Permet au comportement d'un algorithme d'être choisi au temps d'exécution.

Change l’algorithme en éxécution de l’objet Contexte.

Laisse l'algorithme change indépendamment des clients qui l‘éxécute.

Definit une famille d’algorithmes et encapsule chaqu’une.

Permet au algorithmes d’être interchangeable entre les familles.

Page 23: Design patterns french

Objectif

23Meriem Sari GL à Objet 2 2 eme AM GL

Configurer beaucoup de classes relatives qui diffèrent seulement dans leur comportement.

Très utile dans les algorithmes basé sur la validation des données. Type de données. La source de données. Le choix de l’utilisateur…

Utilisé par d’autres objets dans le meme système ou dans des systèmes differents sans dupliqué le code.

Page 24: Design patterns french

Structure (1)

24Meriem Sari GL à Objet 2 2 eme AM GL

Page 25: Design patterns french

Structure (2)

25Meriem Sari GL à Objet 2 2 eme AM GL

Context : maintient une référence sur l’objet Strategy et se manipule à l’aide d’un objet ConcreteStrategy.

Strategy: déclare une intérface commune pour tout les algorithmes supportés.

ConcreteStrategy: implémente l’algorithme en utilisant l’intérface Strategy.

Page 26: Design patterns french

Conséquences

26Meriem Sari GL à Objet 2 2 eme AM GL

L’encapsulation de tout les comportements dans une seule classe rendre difficile d’éviter les branchements conditionels.

Elimine l’utilisation des branchements conditionels.

Fournit des differentes implémentations pour un meme comportement.

Augmente le nombre des objets dans une application.

Page 27: Design patterns french

Exemple (1)

27Meriem Sari GL à Objet 2 2 eme AM GL

Calculator

Page 28: Design patterns french

Exemple (Implémentation)

28Meriem Sari GL à Objet 2 2 eme AM GL

Page 29: Design patterns french

Exemple (Implémentation)

29Meriem Sari GL à Objet 2 2 eme AM GL

Page 30: Design patterns french

Visitor Pattern

30Meriem Sari GL à Objet 2 2 eme AM GL

Définition.

Objectif.

Structure.

Conséquences.

Exemple.

Page 31: Design patterns french

Définition

31Meriem Sari GL à Objet 2 2 eme AM GL

Représente une opération faite sur les éléments de structure de l’object.

Permet l’ajout des nouvelles opérations sans changer la structure de l’objet.

Sépare l’algorithme de la structure de l’objet sur lequel il s’éxécute.

Permet l’ajout des nouvelles fonctions virtuelles dans une classe sans la modifier.

Il respécte le principe ouvert/fermé .

Page 32: Design patterns french

Objectif

32Meriem Sari GL à Objet 2 2 eme AM GL

Considérer un compilateur qui représente les programmes sous forme d’un arbre syntaxique.

On a besoin d’éxécuter des opérations sur ces arbres (configurer les noeuds).

Compiler + Configurer = un système difficile à comprendre (complexe).

Le Visitor design pattern nous permet de configurer les arbre sans polluer le code source du programme originale qui est le compilateur.

Page 33: Design patterns french

Structure (1)

33Meriem Sari GL à Objet 2 2 eme AM GL

Page 34: Design patterns french

Structure (2)

34Meriem Sari GL à Objet 2 2 eme AM GL

Visitor: déclare une opération de Visit pour chaque classe de ConcreteElement . le nom et la signature de l’opération identifis la classe qui envoie la demande de Visit au visitor.

ConcreteVisitor: implemente chaque opération déclaré par Visitor.

Element: definit une opération Accept qui prend en argument un visitor.

ConcreteElement: implemente une opération Accept qui prend en argument un visitor.

Page 35: Design patterns french

Structure (3)

35Meriem Sari GL à Objet 2 2 eme AM GL

Considérer deux objets: un « élément" et un "visitor".

un élément a une méthode accept() qui prend le visitor comme un argument.

La méthode accept() appèlle la méthode visit() de visitor.

L’élément lui meme se passe en argument à la méthode visit() .

Page 36: Design patterns french

Exemple (1)

36Meriem Sari GL à Objet 2 2 eme AM GL

Page 37: Design patterns french

Exemple (Implémentation)

37Meriem Sari GL à Objet 2 2 eme AM GL

Page 38: Design patterns french

Exemple (Implémentation)

38Meriem Sari GL à Objet 2 2 eme AM GL

Page 39: Design patterns french

Exemple (Implémentation)

39Meriem Sari GL à Objet 2 2 eme AM GL

Page 40: Design patterns french

Exemple (Implémentation)

40Meriem Sari GL à Objet 2 2 eme AM GL

Page 41: Design patterns french

Conclusion

41

Si nous n'étudions pas les patrons de conception au niveau de la programmation OO, nous ne pourrons pas améliorer les logiciel, et il

sera plus difficile de les concevoir et réaliser.

Meriem Sari GL à Objet 2 2 eme AM GL

Page 42: Design patterns french

Acknowledgment

42

Merçi Pour Votre Attention

Meriem Sari GL à Objet 2 2 eme AM GL