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

ASP.NET Discussion :

Structuration objets et interfaces


Sujet :

ASP.NET

  1. #1
    CUCARACHA
    Invité(e)
    Par défaut Structuration objets et interfaces
    Salut,

    Je m'auto énerve !

    Question : N'est-il pas possible de dire qu'une classe abstraite implémente une interface et de ne définir les membres de cette interface que dans les classes dérivées ?

    Déjà que c'est pénible de ne pas avoir l'héritage multiple, j'espère que c'est à cause du fait que je ne connais pas la syntaxe...

    Quelqu'un pourrait m'aider ?

    D'avance merci

    Laurent

  2. #2
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Par défaut
    si tu ne veux pas que ta classe A ait des membres car ils seront redéfinis ailleurs, n'implémente pas l'interface sur cette classe mais que sur les enfants.

    c'est un principe de base de la POO, une classe implémente une interface alors elle doit avoir ses attributs tout d'abord pour la logique POO tout simplement et aussi pour que, du jour au lendemain tu enlèves abstract et que cela marche directement. je comprend pas trop l'intérêt de ta manipulation à part la désagréable tâche de devoir les rajouter pour "rien" mais Visual ne permet-il pas de définir automatiquement les membres de l'interface?

  3. #3
    CUCARACHA
    Invité(e)
    Par défaut oui mais je ne trouve pas ca logique
    Salut;

    En fait, c'est pour ne pas oublier d'implémenter les membres

    ++

    Laurent

  4. #4
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    juste ça ?
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    interface IMy
    {
      void OhMy();
    }
     
    abstract class AMy : IMy
    {
      public abstract void OhMy();
    }
     
    class MyClass : AMy
    {
      public override void OhMy()
      { MessageBox.Show("Oh my !"); }
    }

  5. #5
    CUCARACHA
    Invité(e)
    Par défaut Juste ça, merci :)
    Salut,

    Oui, c'est ça... en fait, comme je le pensais, je ne connaissez pas la syntaxe.
    Sur le plan conceptuel, tu es d'accord que c'est justifié si la classe abstraite AMy a plusieurs classes dérivées de même nature, non ?

    ++

    Laurent
    P.S. Je mets résolu mais on peu continuer à débattre du sujet si vous le souhaitez...

  6. #6
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Citation Envoyé par Laurent Jordi Voir le message
    Oui, c'est ça... en fait, comme je le pensais, je ne connaissez pas la syntaxe.
    Sur le plan conceptuel, tu es d'accord que c'est justifié si la classe abstraite AMy a plusieurs classes dérivées de même nature, non ?
    Bien sur que c'est justifié, perso j'applique ce principe très souvent. C'était peut être un problème de quiproquo ...

  7. #7
    CUCARACHA
    Invité(e)
    Par défaut + de conception que de dev
    Re,

    En fait, je fais plus de conception objet que de dev. En conséquence, je m'embrouille un peu dans les limitations de chaque langage. En l'occurrence il s'agit simplement d'une couche Data en C# 2.0.

    Sauf erreur de ma part, même le C# 3.5 ne permet pas les héritages multiples ?

    En attendant, j'utilise une sorte d'héritage en cascade et ça me convient.

    D:C,IC
    C,IB
    A:C:IC

    Ainsi, A, hérite a la fois de C et de D.

    ++

    Laurent

  8. #8
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Citation Envoyé par Laurent Jordi Voir le message
    Sauf erreur de ma part, même le C# 3.5 ne permet pas les héritages multiples ?
    Non

    Citation Envoyé par Laurent Jordi Voir le message
    En attendant, j'utilise une sorte d'héritage en cascade et ça me convient.

  9. #9
    CUCARACHA
    Invité(e)
    Par défaut C'est quoi ce 8O
    Pour quoi tu ?

    ++

    Laurent

  10. #10
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Parce que je n'ai pas compris ta méthode pour résoudre ce "manque" ...

  11. #11
    CUCARACHA
    Invité(e)
    Par défaut Organisation des classes par familles en plus des couches
    Salut,

    En fait c'est assez simple. Je procède à une sorte (attention notion très personnelle qui n'engage que moi) de découpage multidimensionnel des classes.

    Par exemple : je me construit une famille de classe business comme une hiérarchie organisationnelle. Chaque "type" de noeud de la hiérarchie est inclus dans une arborescence objet super clean (une jolie pyramide de classes dans l'éditeur de classe, toutes sont reliée à une seule classe absrtraite mais qui n'a strictement RIEN à voir avec la hiérarchisation des données). Lorsque toute la famille est réunie, il me suffit de lui faire hériter d'une classe de nature totalement différente, en l'occurrence, dans une hiérarchie, un TreeNode. Si j'ai besoin que la classe hérite à la fois du TreeNode et d'une autre classe, par exemple une couche Data, j'ai la possibilité d'intercaler la classe DataXXX entre mon élément hiérarchique de base et mon objet node. Il y a quand même une limitation lorsqu'on mélange des classes des bibliothèques du framework avec ses propres classes.

    Je suis certain que ce type de montage doit avoir un nom savant dans les livres mais je ne le connais pas. Je crois que l'héritage multiple pourrait être apparenté à une sorte d'héritage en parallèle alors que celui que j'utilise pour palier à l'absence de cette capacité est une sorte d'héritage en série...

    J'espère que ces quelques lignes auront pu t'aider à comprendre ce que je veux dire...

    ++

    Laurent

  12. #12
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Rien compris
    (enfin, j'ai pas trop cherché non plus, l'important c'est que ça marche, IJW )

Discussions similaires

  1. utilisation des structures dans une interface
    Par ralf91 dans le forum C#
    Réponses: 5
    Dernier message: 22/01/2010, 16h55
  2. objet et interface
    Par gentelmand dans le forum Débuter avec Java
    Réponses: 8
    Dernier message: 28/09/2009, 21h46
  3. Structuration objet pour arbre
    Par CUCARACHA dans le forum ASP.NET
    Réponses: 2
    Dernier message: 29/04/2008, 11h05
  4. Structure de mon interface
    Par swiixz dans le forum AWT/Swing
    Réponses: 23
    Dernier message: 25/05/2007, 15h57
  5. [Virtual Pascal] [Win32] Objets COM - Interface IShellLink
    Par Alcatîz dans le forum Autres IDE
    Réponses: 5
    Dernier message: 27/10/2005, 21h19

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