Design Pattern Visitor

VincentLagardeAmelieMeyzie
29.5K views

Open Source Your Knowledge, Become a Contributor

Technology knowledge has to be shared and made accessible for free. Join the movement.

Create Content

Bienvenue

Bonjour à tous, ce playground va vous permettre d'apprendre et comprendre brièvement le Design Pattern Visiteur.

Pattern ?

Lorsqu'on parle de pattern, il peut s'agir d'un motif, un modèle, une structure... C'est un phénomène que l'on observe de façon répétée, par exemple dans un jeu vidéo, un "boss" possède très souvent des patterns, dont il faudra exploiter pour le vaincre.

Image Super Mario Bros Dans Super Mario Bros., Bowser crache des boules de feu et saute à des intervalles réguliers, il suit donc certains patterns.

Dans le développement, un pattern constitue une solution générique pour un type de problème rencontré.

Origine des Designs Patterns

L'origine des Designs Patterns vient des travaux d'un architecte, Christopher Alexander. Il remarque que la phase de construction en architecture possède des problèmes récurrents, il écrit un livre A Pattern Language en 1977, où il établit alors un nouveau langage avec 253 patterns, qui couvrent tous les aspects de la construction.

Image de couverture "A Pattern Language"

Ce n'est que plus tard dans les années 90, que l'idée d'Alexander va être reprise, plus particulièrement dans le domaine de conception de logiciel. Dans le livre Design Patterns : Elements of Reusable Object-Oriented .

Image de couverture "Design Patterns : Elements of Reusable Object-Oriented Software"
Publié en 1995 par Erich Gamma, Richard Helm, Ralph Johnson et John Vlissides, et plus généralement appélé "Gang of Four" (GoF), cette équipe présente 23 Design Patterns qui sont aujourd'hui des références dans le domaine de l'informatique.

Design Pattern ?

Selon les personnes, un Design Pattern peut être appelé "motif de conception", "modèle de conception" ou encore "patron de conception", mais la signification reste la même.

Définition

Finalement un Design Pattern est une solution à un problème récurrent dans la conception d'applications orientées objet. Nous allons voir que le Design Pattern Visiteur permet de concevoir un application où il sera facile d’ajouter des fonctionnalités à une classe sans la modifier.

Caractéristiques

Un Design Pattern est représenté par 4 caractéristiques :

  • Nom : qui permet de l’identifier clairement
  • Problématique : description du problème auquel il répond
  • Solution : description de la solution souvent accompagnée d’un schéma UML
  • Conséquences : les avantages et les inconvénients de cette solution

Les différents Designs Patterns

Les 23 Designs Patterns peuvent être regroupés en 3 familles :

  • Création : ils permettent d’instancier et de configurer des classes et des objets.
  • Structure : ils permettent d’organiser les classes d’une application.
  • Comportement : ils permettent d'organiser les objets pour qu’ils collaborent entre eux.

Comment s'en servir ?

  1. Trouver le problème
  2. Identifier le Design Pattern qui pourrait résoudre le problème
  3. Créer sa propre solution en utilisant la solution générique du Design Pattern

Il est important de bien identifier le problème de conception avant de choisir un pattern, sinon le pattern choisi s'adaptera mal avec le problème et pourrait créer encore plus de problème qu'au départ.

Quiz

De quel design pattern va-t-on parler aujourd'hui ?
Qui à crée les premiers Designs Patterns pour la conception de logiciel ?
Qu'est-ce que n'est pas un Design Pattern ?
A votre avis, à quelle famille appartient le Design Pattern Visiteur ?
Open Source Your Knowledge: become a Contributor and help others learn. Create New Content