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 :

La Classe Enum peut-elle contenir des méthodes


Sujet :

Langage Java

  1. #1
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 23
    Par défaut La Classe Enum peut-elle contenir des méthodes
    Bonjour,

    Je voulais savoir si le fait de de rajouter des méthodes dans une classe enum est correcte ?
    Est-ce que la classe enum peut implémenter une interface ?

    Je sais que cela marche, mais est ce que au niveau de la poo ou de la convention de java cela est permis.

    Merci,
    cordialement P.

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Tu trouveras beaucoup de puristes de POO pour te dire que c'est même la meilleure chose à faire.

    La logique étant que si un traitement doit être fait différemment en fonction de chaque élément de l'enum, le meilleur endroit pour définir cette logique est dans l'enum lui-même : si on le fait ailleurs on risque d'oublier de mettre à jour la prochaine fois qu'on ajoute un élément à l'enum. De manière générale, cela donne au programmeur la responsabilité de gérer quelque chose qui devrait être automatiquement géré par l'approche objet.

    Par exemple, dans un switch, on risque d'oublier de gérer quelques éléments de l'enum. Si on appelle une méthode implémentée par tous les éléments de l'enum, là il n'y a rien à oublier.

    Personnellement je suis plus mitigé : ajouter des méthodes aux enums n'est pas spécialement mauvais (d'ailleurs, le seul fait que ça soit possible bien que rajouté relativement récemment est un indice.) Mais il reste important d'avoir un code clair et lisible. Si on implémente des pages de méthodes pour chaque élément de l'enum, il devient assez difficile de retrouver où est quoi. Personnellement j'essaie de garder un équilibre entre utilisation élégante du polymorphisme, et maintenabilité du code.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Par défaut
    Pareil. J'utilise énormément les enum (en conjonction avec les EnumSet et EnumMap), et pourtant, aucune de ces enum ne définit plus trois ou quatre méthodes. Seules les plus importantes sont effectivement créées au sein de l'enum. Les plus grosses méthodes, par contre, sont systématiquement externalisées dans un EnumMap<Enum,Runnable> afin de conserver la lisibilité nécessaire à une enum.

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    oui on peux ajouter sans problèmes de méthodes à l'enum ou des interfaces, bien sur la bonne pratique demande que tu n'ajoute que des choses qui sont logiquement liée à l'enum. Par exemples des getters pour obtenir certaines caractéristiques de l'enum en question.

  5. #5
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 23
    Par défaut
    Merci à tous pour vos réponses.

    Problème résolu

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 02/01/2015, 13h23
  2. Réponses: 3
    Dernier message: 19/02/2012, 17h24
  3. Réponses: 2
    Dernier message: 10/01/2012, 20h02
  4. Une page HTML peut-elle sauvegarder des donnees?
    Par ValyGator dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 31/10/2009, 10h37
  5. [Débutant] Une fonction peut-elle prendre des caractères en argument ?
    Par mdelvaux89 dans le forum MATLAB
    Réponses: 7
    Dernier message: 07/04/2009, 21h31

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