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

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    avril 2011
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : avril 2011
    Messages : 79
    Points : 49
    Points
    49

    Par défaut [Recherche] Un pattern pour des attributs dynamique?

    Bonjour,

    Je viens de me rendre compte que je me suis imagné des chose sur le pattern composite (ou peut être que maintenant je me fais des idées qui sais).

    Je cherchais un moyen propre (sans la blinde de cast) de pourvoir composer des classes avec des attributs qui eux seront mit à part dans des classes prévu pour.

    Mon problème étant que je veux avoir des classes évolutives au niveau des attributs, hors l'héritage est trop limité.

    Par exemple j'ai 3 classes A, B et C

    Je souhaite donner l'attribut X à A et B
    Et je souhaite donner l'attribut Y à B et C

    Evidemment tous cela à grande échelle et de manière évolutive.

    J'ai un peu du mal à trouver, si vous avez des idées je suis preneur!

    Merci d'avance


    Edit : c'est en parlant que l'on se rend compte des bêtise que l'on dit.
    Je crois que j'ai voulu voir un pattern la ou il n'y en a pas...
    Il suffit simplement d'ajouter une instance de l'objet caractérisant l'attribut, dans l'objet principal....
    Il faut juste que je trouve le moyen de le limiter à des classes précises, mais je crois que c'est largement possible ^^

    Désolé d'avoir fait un post qui peut paraître inutile en soit.

    Je le passerai en résolu quand j'aurai réglé le problème de sécurité (en expliquant)

  2. #2
    Expert éminent sénior

    Avatar de Neckara
    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    décembre 2011
    Messages
    7 789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : décembre 2011
    Messages : 7 789
    Points : 19 454
    Points
    19 454

    Par défaut

    Bonjour,

    Est-ce que l'attribut est commun (= a la même valeur pour n'importe quelle instance de A et B) ou aura une valeur différente pour A et B ?

    Sinon, je verrais bien une classe Attribut qui contiendrait en interne un std::stringet qui aurait toutes les méthodes qui vont bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    bool isType<Type>(void);
    Type toType<Type>(void);
    Type (Type)(void); //conversion implicite (pas sur de la syntaxe).
    const std:string & data(void);
    TypeId type(void);
    J'ai mis des templates, mais on peut aussi faire : bool isInt(void);.

    A partir de là on a un attribut "générique" mais pas très pratique pour manipuler certains types.
    On peut alors créer des classes qui hériterons publiquement de Attribut : AttributEntier, AttributDouble, AttributMachin.

    Avec ceci, tu devrais normalement pouvoir ajouter à tes classes un tableau de pointeurs (si possible unique_ptr) dans ta classe si les attributs ne sont pas partagés.
    Sinon un tableau de pointeurs statique (si possible shared_ptr si partagés entre classes sinon unique_ptr) si les attributs sont partagés.
    "Parce que le diable est dans les détails, une vision sans nuance ne peut prétendre à la compréhension du monde."

    Mon ancienne page perso : https://neckara.developpez.com/

  3. #3
    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 : 50
    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 500
    Points
    3 500
    Billets dans le blog
    2

    Par défaut

    Pour faire de l'héritage "dynamique" on passe par la décoration et donc la délégation.
    Tu as aussi le pattern Rôle. Qui utilise le principe de délégation d'ailleurs.

Discussions similaires

  1. Pattern pour des contraintes entre Objet
    Par fabgamer dans le forum Design Patterns
    Réponses: 7
    Dernier message: 24/09/2010, 12h06
  2. Réponses: 0
    Dernier message: 22/10/2007, 10h31
  3. Réponses: 3
    Dernier message: 24/01/2007, 10h26

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