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 :

Problème de conception pour un Stack


Sujet :

Langage Java

  1. #1
    Membre régulier Avatar de gelam
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2003
    Messages : 69
    Points : 74
    Points
    74
    Par défaut Problème de conception pour un Stack
    Bonjour,
    J'ai un problème de compréhension dans la conception d'un Stack.
    Dans la FAQ ( et ailleur ) on voit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public class LinkedStack extends java.util.LinkedList implements Stack {
    ...
    }
    Il me semble que conceptuellement un Stack n'est pas un List dans la mesure
    ou l'accès à un élément par sa position n'est pas souhaitable.
    A priori je n'utiliserais pas l'héritage dans ce cas précis mais plutôt une relation d'utilisation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public class LinkedStack implements Stack {
       private java.util.LinkedList values ;
    ...
    }
    Ce n'est pas la première fois que je vois cela et je me demande si ma conception pèche sur un point que je n'ai pas vu ou compris.

    Merci
    Avez-vous remarqué les progrès que fait l'ignorance?
    [Tristan Bernard ]

  2. #2
    Membre éclairé

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 346
    Points : 737
    Points
    737
    Par défaut
    D'un point de vue purement structure de données, je te donne raison aussi.

    Pour moi, pour coder un stack, on ne doit pas étendre de ArrayList car un stack est plutôt éloigné de list (il est plus proche de Set à la limite).

    De plus on pourrait même directement codé un stack avec un tableau d'objet.

  3. #3
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Tu n'as même pas besoin de faire implements Stack (java.util.Stack est une classe qui étend Vector)...
    Après tu as peut-être ta propre interface Stack, mais LinkedList à lui tout seul sait faire une pile (sans rien rajouter)... Après faut juste faire gaffe d'utiliser les bonnes méthodes...

  4. #4
    Membre régulier Avatar de gelam
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2003
    Messages : 69
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par ®om
    Tu n'as même pas besoin de faire implements Stack (java.util.Stack est une classe qui étend Vector)...
    Avec cette implémentation j'ai un stack qui me permet d'accéder à n'importe quel élément ce qu'il faut éviter.
    D'autre part, d'après sun, il ne faut plus utiliser vector (obsolète)

    Citation Envoyé par ®om
    Après tu as peut-être ta propre interface Stack, mais LinkedList à lui tout seul sait faire une pile (sans rien rajouter)... Après faut juste faire gaffe d'utiliser les bonnes méthodes...
    Je veux justement un composant qui m'évite de devoir faire gaffe (qualité du logiciel... c'est le compilateur qui détecte le maximum d'erreurs).
    Avez-vous remarqué les progrès que fait l'ignorance?
    [Tristan Bernard ]

  5. #5
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Citation Envoyé par gelam
    Je veux justement un composant qui m'évite de devoir faire gaffe (qualité du logiciel... c'est le compilateur qui détecte le maximum d'erreurs).
    Dans ce cas, c'est bien ce que tu fais, utiliser un décorateur (tu transmets juste les méthodes à ta liste en attribut, et comme ça tu ne rends pas visible depuis l'extérieur les méthodes "interdites").
    D'ailleurs, l'API Java devrait proposer une implémentation de Stack (sans utiliser Vector), sans être obligé de "faire gaffe" avec LinkedList, car c'est quand même un truc de base...

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

Discussions similaires

  1. problème de concept pour les objets
    Par denissolar dans le forum Général Python
    Réponses: 3
    Dernier message: 03/11/2012, 11h58
  2. [Cryptographie] Problème de conception pour crypter des adresses mail
    Par Le Barde dans le forum Général Conception Web
    Réponses: 3
    Dernier message: 10/03/2011, 22h59
  3. Problème de conception pour une application d "Audit"
    Par Jcdas dans le forum Modélisation
    Réponses: 3
    Dernier message: 05/11/2008, 20h13
  4. Réponses: 13
    Dernier message: 26/06/2007, 16h19
  5. Réponses: 1
    Dernier message: 14/05/2006, 20h02

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