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

Langage Java Discussion :

héritage et classes abstraites


Sujet :

Langage Java

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Points : 8
    Points
    8
    Par défaut héritage et classes abstraites
    Bonjour à tous,

    J'ai une question à propose de l'héritage :
    Pour faire simple, je dois construire une appli qui permet de créer une carte contenant plusieurs couches graphiques. L'API graphique utilisée pour faire cela doit etre changeable dans le futur.
    Pour faire cela, j'ai pensé à créer une classes abstraite AbstractMap contenant une collection d'objets AbstractLayer (pour les couches).

    Ensuite j'ai créé une classe Map qui hérite de AbstractMap que je vais utiliser pour coder grace à mon api graphique choisie. De meme j'ai créé une classe Layer héritant de AbstractLayer afin de coder les couches avec l'api choisie.

    Mon probleme : Map héritant de AbstractMap, elle contient un attribut Collection d'AbstractLayers et moi je voudrais bien entendu que Map contienne une collection de Layers.

    Une ame charitable pourrait-elle me dire comment réaliser cela SVP ?

    Merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Citation Envoyé par reloadead
    Mon probleme : Map héritant de AbstractMap, elle contient un attribut Collection d'AbstractLayers et moi je voudrais bien entendu que Map contienne une collection de Layers.

    Une ame charitable pourrait-elle me dire comment réaliser cela SVP ?
    Oui, il faut laisser comme ça. C'est toujours mieux de représenter les classes par leur interface ou leur type abstrait

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    merci pour ta réponse.
    Donc si j'ai bien compris, tu me conseilles de laisser une collection d'AbstractLayer dans ma classe Map. Mais ensuite comment faire le lien entre cette collection abstraite et le fait qu'en réalité Map doit manipuler des objets de classe Layer ?

  4. #4
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Citation Envoyé par reloadead
    merci pour ta réponse.
    Donc si j'ai bien compris, tu me conseilles de laisser une collection d'AbstractLayer dans ma classe Map. Mais ensuite comment faire le lien entre cette collection abstraite et le fait qu'en réalité Map doit manipuler des objets de classe Layer ?
    Ah les couches vont aussi être différentes d'une implémentation à une autre ?

    Si c'est possible, il faudrait que tout soit défini dans la classe abstraite et qu'ainsi les différentes implémentations de Map soit indépendantes de l'implémentation de Layer, mais c'est pas toujours possible.

  5. #5
    Membre confirmé Avatar de schniouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Luxembourg

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 382
    Points : 474
    Points
    474
    Par défaut
    Citation Envoyé par reloadead
    merci pour ta réponse.
    Donc si j'ai bien compris, tu me conseilles de laisser une collection d'AbstractLayer dans ma classe Map. Mais ensuite comment faire le lien entre cette collection abstraite et le fait qu'en réalité Map doit manipuler des objets de classe Layer ?
    Le lien se fera automatiquement, car toutes les méthodes et attributs définis dans AbstractLayer le seront aussi dans Layer ! Par contre, tout ce que tu définis en + dans Layer ne sera pas atteignable depuis AbstractLayer, à moins de faire un cast.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Tout d'abord merci pour vos réponses.
    Je vais juste essayer d etre plus clair dans mon probleme. Dans le pire des cas je ferai tout dans une meme classe.

    Je dois utiliser l'APi graphique JViews pour mon projet tout en laissant le possibilité d'utiliser autre chose un jour prochain.
    JViews contient deja tout ce qu'il faut pour construire des map, des layers, des objets graphiques, etc.
    L'idée, c'était que j'implémente une classe AbstractMap et une classe AbstractLayer dans lesquelles je mets les signatures de méthodes telles que addLayer(), remove layer() , etc sans les implémenter.

    J'ai une classe Layer héritant de AbstractLayer dans laquelle je vais renseigner les méthodes de AbstractLayer en utilisant des composant de Jviews. Meme chose pour ma classe Map héritant de AbstractMap, je vais utiliser des composants de Jviews.

    Ces deux classes Map et Layer sont donc étroitement liées à Jviews et devraont etre entierement redéfinies le jour ou on se passes de JViews.

    En attendant, j'ai ma classe Map qui contient une collection de AbstractLayers mais moi je voudrais qu'elle contienne une collection de Layers (qui hérite de AbstractLayer, pour ceux qui ont suivi )

    Est ce possible ou vaut il mieux que tout ce qui touche à la classe qui risque d etre modifiée plus tard soit regroupé dans une seule classe, en gros, supprimer AbstractLayer et Layer et tout faire dans AbstractMap et Map ?

    je ne sais meme pas si j'arrive a etre clair dans mes explications....

Discussions similaires

  1. Héritage de classes abstraites
    Par gladio62 dans le forum Windows Presentation Foundation
    Réponses: 6
    Dernier message: 11/05/2009, 14h27
  2. [DC] Héritage et classes abstraites
    Par leminipouce dans le forum Diagrammes de Classes
    Réponses: 7
    Dernier message: 08/01/2008, 16h14
  3. pb héritage sur classe abstraite et iterator
    Par black-falco dans le forum C++
    Réponses: 21
    Dernier message: 05/01/2008, 16h38
  4. Héritage et classes abstraites
    Par Mic75 dans le forum C++
    Réponses: 2
    Dernier message: 30/10/2007, 17h06
  5. Problème héritage et classes abstraites
    Par sebzinzin dans le forum Langage
    Réponses: 4
    Dernier message: 03/06/2007, 18h24

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