14
Cours Génie Logiciel (GL ) 3 ème Année LMD 2020-2021 3 LMD Z.LAAREDJ 1

Cours Génie Logiciel (GL ) 3ème Année LMD

  • Upload
    others

  • View
    22

  • Download
    0

Embed Size (px)

Citation preview

Cours Génie Logiciel (GL )3ème Année LMD

2020-2021 3 LMD Z.LAAREDJ

1

Les partons de conception (Design patterns)

Définition

Est une solution à un problème récurrent de conception objet.

Les patterns simplifient la conception du logiciel et définissent un

vocabulaire commun. Ils sont formulés de façon abstraite, indépendante

du contexte ou de l’application.

2

2020-2021 3 LMD Z.LAAREDJ

du contexte ou de l’application.

En français, on dit aussi « motif de conception », voire « patron de

conception ».

Est une structure qu’on réutilise à chaque fois qu’on en a besoin

Les partons de conception (Design patterns)

Description d’un patron de conception

Un patron est généralement donné par :

Un nom: vocabulaire de conception

La description du problème qu’il résout et son contexte;

Les bénéfices qu’il apporte;

3

2020-2021 3 LMD Z.LAAREDJ

Les bénéfices qu’il apporte;

La solution elle-même: description des éléments, de leurs

relations/coopérations et de leurs rôles dans la résolution du

problème;

Les conséquences : Effets résultant de la mise en œuvre du

patron, et éventuellement des remarques concernant

l’implémentation.

Les partons de conception (Design patterns)

Les avantages

Répondre à un problème de conception grâce à une solution

éprouvée et validée par des experts.

La rapidité et la qualité de conception ce qui diminue également

les coûts.

4

2020-2021 3 LMD Z.LAAREDJ

les coûts.

Mettre en avant les bonnes pratiques de conception grâce à la

réutilisabilité.

facilite la communication.

Les partons de conception (Design patterns)

Les patrons de création : ils permettent d’instancier et de configurer

des classes et des objets.

Abstract factory, Factory method, Singleton,

Prototype, Builder

Les patrons comportementaux : ils permettent d'organiser les objets

5

2020-2021 3 LMD Z.LAAREDJ

Les patrons comportementaux : ils permettent d'organiser les objets

pour qu’ils collaborent entre eux.

Iterator, Strategy, State, Observer, Command,

Visitor, Chain of responsiblity, Interpreter, Mediator, Memento,

Template method

Les partons de conception (Design patterns)

Les patrons structuraux : ils permettent d’organiser les classes d’une

application

Decorator, Adapter, Facade, Composite

Bridge, Flyweight, Proxy

6

2020-2021 3 LMD Z.LAAREDJ

Les partons de conception (Design patterns)

Pattern Singleton Problème résolu : permet d’assurer qu’une seule instance d’uneclasse donnée est utilisée.

Solution : le constructeur de la classe est déclaré privé, afind’empêcher la création d’autres instances, tandis qu’une instance eststockée dans la classe elle-même et accessible par une méthode.L’instance est créée de façon statique, ou au premier appel de

7

2020-2021 3 LMD Z.LAAREDJ

L’instance est créée de façon statique, ou au premier appel degetInstance().

public static synchronized Singleton getInstance(){if (_singleton == null)_singleton = new Singleton();return _singleton;}

Les partons de conception (Design patterns)

Pattern Itérateur Problème résolu : permet de découpler l’itération sur les élémentsd’une structure de la structure elle-même. Permet en particulierd’effectuer plusieurs itérations simultanément sur la mêmestructure. Autrement dit fournir un accès séquentiel aux élémentsd’un agrégat d’objets indépendamment de l’implémentation del’agrégat (liste, tableau, ...)

8

2020-2021 3 LMD Z.LAAREDJ

Solution : la structure fournit des itérateurs sur elle-même.

Les partons de conception (Design patterns)

Pattern ItérateurExemple :

9

2020-2021 3 LMD Z.LAAREDJ

Les partons de conception (Design patterns)

Pattern Stratégie Problème résolu : permet à un objet de modifier dynamiquementl’implémentation d’un comportement (par exemple, d’algorithmepour un problème) sans changer de classe.

Solution : l’algorithme n’est pas implémenté dans la classe del’objet. L’objet contient une stratégie, dont il peut changerdynamiquement l’instance concrète. Les différentes stratégies sont

10

2020-2021 3 LMD Z.LAAREDJ

dynamiquement l’instance concrète. Les différentes stratégies sontdonc implémentées dans différentes classes concrètes.

Les partons de conception (Design patterns)

Pattern Composite Problème résolu : permet à une classe « cliente » de traiter demanière indifférente des objets ou des ensembles d’objets.Autrement dit représenter des hiérarchies composant/composé ettraiter de façon uniforme les composants et les composés

Solution : une classe abstraite est dérivée en feuilles et encomposites, qui contiennent eux-mêmes des composants (abstraits).

11

2020-2021 3 LMD Z.LAAREDJ

composites, qui contiennent eux-mêmes des composants (abstraits).

En général, les opérations pourront être implémentées dans lecomposite par de simples boucles sur les éléments qu’il contient.

Les partons de conception (Design patterns)

Pattern Adaptateur Problème résolu : permet d’« unifier » une interface requise parun client et l’interface d’une classe fournissant les services attendus.autrement dit fournir une interface stable(Adaptateur) à uncomposant dont l’interface peut varier (Adapté).

Solution : ce motif se décline en deux variantes. L’adaptateur declasse consiste à faire hériter une nouvelle classe de la classe

12

2020-2021 3 LMD Z.LAAREDJ

classe consiste à faire hériter une nouvelle classe de la classefournissant les services, en lui faisant implémenter l’interface requisetout en utilisant les méthodes de la surclasse. L’adaptateur d’objetconsiste à écrire une nouvelle classe, implémentant l’interfacerequise et utilisant une instance du fournisseur par délégation.

Les partons de conception (Design patterns)

Pattern Factory Problème résolu : permet à un client de créer des objets sanssavoir leur type précis.

Solution : les objets à créer (produits) sont représentés par uneclasse abstraite dont dérivent toutes les classes d’objets. Une « usine» abstraite permet aux clients de fabriquer des produits. Chaqueusine concrète crée un produit du type concret correspondant. En

13

2020-2021 3 LMD Z.LAAREDJ

usine concrète crée un produit du type concret correspondant. Engénéral, la méthode de création prend des arguments.

Les partons de conception (Design patterns)

Pattern Façade Problème résolu : permet à un client d’utiliser de façon simple ettransparente un ensemble (complexe) de classes qui collaborentpour réaliser une tâche courante.

Solution : une classe fournit une façade de l’ensemble de classes,en proposant des méthodes qui réalisent les tâches usuelles enutilisant les autres classes.

14

2020-2021 3 LMD Z.LAAREDJ

utilisant les autres classes.