IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Design Patterns Discussion :

Quel est son intérêt ?


Sujet :

Design Patterns

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 10
    Points : 7
    Points
    7
    Par défaut Quel est son intérêt ?
    Bonjour,

    Je ne comprend pas bien l'intérêt du pattern Visitor ...

    En lisant à droite et à gauche des infos, je lis que
    cela permet (par exemple) de réaliser la somme des
    entiers d'une liste ... ou le produit des entiers
    d'une liste ... etc ... sans toucher au code de la liste en
    question.

    Mais ... je peux très bien faire ça en itérant sur la liste
    et en additionnant (ou multipliant) chacun des entiers rencontrés.
    C'est très propre et du coup, je ne vois pas l'utilité du pattern Visitor.

    Quelqu'un pour me renseigner ? j'imagine que je loupe quelque chose.

    merci de vos conseils

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Le visitor est un pattern qui définit une interface pour pouvoir ajouter dynamiquement une méthode a une classe existante. Ce qui peut être intéressant pour ré-utiliser une classe et/ou la spécialiser.

    Potentiellement, chaque fois que vous créez une methode virtuelle vous pouvez vous poser la question visitor ou pas?

    Pour faire la somme des entiers d'une liste, vous avez nullement besoin d'utiliser ce pattern... Mais il peut être utile de prendre un exemple 'simple' pour souligner comment interagissent les différents composants du pattern.

    -W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 10
    Points : 7
    Points
    7
    Par défaut merci
    merci pour la réponse.

    J'imagine que lorsque vous parlez de "méthode virtuelle", c'est au sens
    C++ du terme ?
    Ce qui s'applique donc tout le temps en Java.

    jean

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Oui enfin ce qui est important c'est le double appel: -> visit -> visitor (self)
    et l'effet qui ajoute une sorte de méthode à la classe sans passer par la dérivation (qui lie relativement fort les classes entre elles).

    Exemple assez tendance, les frameworks qui proposent "l'invertion of control" (IOC). Classiquement, on s'interface avec via des 'visitors' i.e. des points d'entrées que le framework découvre lorsqu'on le lance.

    Plus classique est le balayage de l'ensemble d'une collection pour appliquer une méthode 'custom' à un ou plusieurs de ses éléments.
    -W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Oui enfin ce qui est important c'est le double appel: -> visit -> visitor (self)
    et l'effet qui ajoute une sorte de méthode à la classe sans passer par la dérivation (qui lie relativement fort les classes entre elles).

    Exemple assez tendance, les frameworks qui proposent "l'invertion of control" (IOC). Classiquement, on s'interface avec via des 'visitors' i.e. des points d'entrées que le framework découvre lorsqu'on le lance.

    Plus classique est le balayage de l'ensemble d'une collection pour appliquer une méthode 'custom' à un ou plusieurs de ses éléments.
    -W

    Merci beaucoup. C'est plus clair dorénavant.

Discussions similaires

  1. où est /usr/local sur mac OSX server (10.4.10) ou quel est son équivalent?
    Par Khaled.Noordin dans le forum Développement OS X
    Réponses: 2
    Dernier message: 08/07/2007, 22h55
  2. Réponses: 3
    Dernier message: 16/01/2006, 19h53
  3. [Débutant(e)] [ClassPath] Quel est son rôle ?
    Par slate dans le forum Général Java
    Réponses: 5
    Dernier message: 06/07/2005, 08h32
  4. Mais quel est l'intérêt de XML ?
    Par darkbauer dans le forum XML/XSL et SOAP
    Réponses: 7
    Dernier message: 01/06/2004, 18h03
  5. Quel est l'intérêt des Services Web ??
    Par silvermoon dans le forum Débats sur le développement - Le Best Of
    Réponses: 19
    Dernier message: 12/02/2003, 22h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo