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 :

Composite d'interface


Sujet :

Design Patterns

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 33
    Par défaut Composite d'interface
    Bonjour,

    Je travaille actuellement sur une application java standalone qui utilise des fichiers (assez gros) en entrées pour produire des documents variés en sortie.
    Cette application doit être utilisée comme API d'un atelier pour générer ses documents, mais sans avoir connaissance de cet atelier.
    Le coeur de l'atelier est un basique pattern composite, avec visiteurs associés.

    Pour pouvoir parser les objets de mon atelier je comptais donc passer par un jar d'interface, qui serait un "composite d'interface" à l'image de la structure présente dans l'atelier.
    Le problème est que ça m'oblige à rajouter dans la centaine de classes composant la structure composite de l'atelier l'information comme quoi elles implémentent cette nouvelle interface.
    Ça m'oblige aussi à redéfinir un nouveau visiteur mais qui manipulerait les interfaces (je ne sais d’ailleurs pas si le double dispatch fonctionne sur les interfaces...).

    Je ne suis pas très à l'aise avec cette approche, j'ai l'impression que ce n'est pas la bonne manière de procéder, peut être parce que ça m'oblige à rajouter des interfaces "artificielles" du point de vue de l'atelier.

    Qu'en pensez vous?
    Et voyez vous une autre manière de faire?

  2. #2
    Membre émérite Avatar de Cincinnatus
    Homme Profil pro
    Développeur d'applications métier
    Inscrit en
    Mars 2007
    Messages
    593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur d'applications métier
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 593
    Par défaut
    Un peu tard, mais au cas où ça servirait...

    Il me semble que le pattern serait plutôt celui de façade. Sous réserve d'avoir compris le contexte...

  3. #3
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2007
    Messages : 68
    Par défaut
    L'approche composite/visiteur me paraissait pas mal.

    Peut-être que la structure des classes qui implémentent le composite n'est pas correcte ? Il manque peut-être des abstractions intermédiaires qui simplifieraient du coup les visiteurs ?

    Difficile d'en dire plus avec ce que je sais.

Discussions similaires

  1. [POO] Héritage, interface et composition
    Par remyli dans le forum Langage
    Réponses: 3
    Dernier message: 26/11/2009, 10h08
  2. Interface, sous interface et composition
    Par perldebutant dans le forum Diagrammes de Classes
    Réponses: 5
    Dernier message: 28/01/2007, 17h40
  3. [VB6] [Interface] Horloge 7 segments
    Par selenay dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 07/10/2002, 16h15
  4. interface utilisateur avec OpenGL
    Par demis20 dans le forum OpenGL
    Réponses: 6
    Dernier message: 03/10/2002, 12h27

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