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 :

Système de Plugins "réutilisable"


Sujet :

Design Patterns

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Système de Plugins "réutilisable"
    Bonjour,

    Je souhaite développer un système de plugins qui soit applicables à différentes classes. Je m'explique:

    Imaginons une application composée des classes "Texte" et "Dessin":
    • Texte à comme attribut un "titre" (string) et un "corps" (string)
    • Dessin à comme attribut une "image" (flux binaire) et une "légende" (string)


    Je souhaite développer un plugin qui soit capable de traduire un "Texte" ou un "Dessin", en se basant sur ce qui est traduisible (pour le "Texte", il s'agirait du titre et du corps et pour un "Dessin" de la légende). J'imaginais définir un mapping de ce qui est traduisible dans un genre de manifest par exemple.

    L'important c'est que si je défini de nouveaux type (par exemple "Rapport", avec un titre, des chapitres, etc...) c'est que mon plugin soit réutilisable aussi, par simple modif du manifest par exemple...

    Auriez vous des idées par ou commencer ?

    merci d'avance !

  2. #2
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    je ne suis pas certain d'avoir compris mais bon....ne serait-ce pas un truc comme l'abstractFactory qui pourrait t'intéresser ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Effectivement l'abstract factory est nécessaire pour fabriquer mes objets sans connaitre leur type fort, mais juste l'interface qu'ils exposent (ITraduisible par exemple).

    Mais comment puis-je faire pour dire à mon plugin de traduction (traduction anglais-français par exemple) qu'il doit, dans le cas d'un "Texte" traduire le titre et le corps, alors que pour le dessin il faut traduire la légende, etc...

    La contrainte du système de plugin que je vois c'est que un Dessin ne "connait" pas le plugin traduction. Il ne m'est donc pas possible dans le code du dessin d'appeler:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    montraducteur.traduire(this.legende);
    Je verrai plutôt un truc du style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.traduire(mondessin.legende);
    dans le code du plugin.... Mais comment décoreller le dessin du traducteur, puisque que la méthode "traduire" doit traduire à priori n'importe quoi...

    Bref un casse-tête je m'y perds moi même (c'est un peu savoir de qui de la poule ou de l'oeuf était là en premier)...

    Merci ego pour ta réponse en tous cas

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