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

C# Discussion :

Héritage d'une classe abstraite / Quel pattern ?


Sujet :

C#

  1. #1
    Membre actif
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2004
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 477
    Points : 223
    Points
    223
    Par défaut Héritage d'une classe abstraite / Quel pattern ?
    Bonjour à tous,

    J'ai un problème que je ne sais pas résoudre, je pense qu'il faut que j'utilise un pattern mais je ne sais pas lequel.
    J'ai une classe abstraite "ChartUI", et j'ai plusieurs classes qui héritent de ChartUI, notamment une qui se nomme "ChartProdUI".
    J'ai un objet "ChartProdData" qui contient un objet "ChartUI".

    ce que je fais c'est la chose suivante, la première ligne n'est pas en erreur. Par contre les autres lignes sont toutes en erreurs parce que les propriétés sont propres à ChartProdUI.
    Comment dois je faire pour implicitement dire que mon objet issu de la classe abstraite et un ChartProdUI ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
                    this.chartUI= new ChartProdUI(this);
                    this.chartUI.BDisplayInColumn = this.BDisplayInColumn;
                    this.chartUI.BDisplayImbalanceSerie = false;
                    this.chartUI.BZoomable = false;
                    this.chartUI.BDisplayDualAxis = false;
                    this.chartUI.BDisplayCursor = false;
                    this.chartUI.BDisplayXAxisLabel = false;
                    this.chartUI.bindSeriesToChart();

  2. #2
    Membre chevronné
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 899
    Points : 1 916
    Points
    1 916
    Par défaut
    Il manque un peu de contexte, mais réponse au plus simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ChartProdUI chartProdUI = new ChartProdUI();
    /*
      affectations spécifiques à ChartProdUI
    */
    this.chartUI = chartProdUI ;

  3. #3
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    Tel que c'est fait, la classe ChartProdData est clairement faite pour fonctionner avec un ChartProdUI.

    L'adaptation à faire va donc dépendre de ce que tu as besoin.

    Soit, il n'y a que CharProdData qui a besoin d'avoir une instance de ChartUI.
    Cela semble être le cas puisque tu affecte le charUI localement.
    Dans ce cas ton membre privé charUI doit directement être déclaré dans CharProdData sous un type ChartProdUI au lieu de ChartUI.

    Soit, c'est tout les descendant de CharUI ont besoin d'avoir une instance de CharUI.
    Dans ce cas, il faut un charUI protégé au sein même de la classe CharUI pour que tous les autres en bénéficie.
    Et cela imposera de passer par un membre intermédiaire du bon type dans les descendant comme le suggère Noxen si tu as besoin d'accéder à des membres qui ne sont présent que dans le descendant.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 27/09/2012, 17h37
  2. héritage d'une classe abstraite
    Par new_wave dans le forum Langage
    Réponses: 8
    Dernier message: 04/03/2010, 12h54
  3. Problème d'héritage avec une classe abstraite
    Par Ph.denis dans le forum C++
    Réponses: 7
    Dernier message: 22/03/2008, 10h37
  4. Erreur du designer avec héritage d'une classe abstraite
    Par Xzander dans le forum Windows Forms
    Réponses: 4
    Dernier message: 04/04/2007, 00h36
  5. Conception: héritage d'une classe abstraite
    Par Kikito dans le forum Langage
    Réponses: 19
    Dernier message: 05/10/2006, 17h36

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