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 :

Eviter du code redondant


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 114
    Par défaut Eviter du code redondant
    Bonjour,

    je voudrais mettre au propre un code sur l'apprentissage et l'utilisation d'un modèle statistique. Je pense devoir avoir deux classes : Training et Evaluation. Dans ces deux classes, une méthode commune est utilisée. Je pense donc devoir créer une classe abstraite, dans laquelle cette méthode est implémentée, et en faire hériter les deux autres. Seulement, cette méthode a trois variantes. Je pense donc devoir :
    1. créer trois classes abstraites dans lesquelles figurent ces trois variantes
    2. chaque fois hériter deux fois de ces classes, une fois pour l'apprentissage et une fois pour le test, ce qui fait 6 classes, avec beaucoup de code redondant.

    Une autre façon de faire est de rendre redondante l'écriture de la méthode : avoir une classe Training et une classe Evaluation abstraites et créer 2 fois 3 classes qui en héritent et dans lesquelles cette méthode est spécifiée. Comme cette méthode est la même à l'apprentissage qu'à l'évaluation, elle sera redondante : elle figurera une fois dans le code de l'apprentissage et une fois dans le code du test.

    Donc dans les deux cas il y a redondance. Comment éviter cela ?

  2. #2
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    Dans quelle mesure les 3 versions de la méthode sont différentes?
    Peut-être que tu peux en faire une principale et 2 autres versions qui appellent celle-ci avec des paramètres différents?


    Est-ce que c'est une méthode "outils" qui pourrait être externalisée dans une classe "Boite à outils"?
    Si non, à quoi correspond cette méthode? si ces 2 classes ont un comportement en commun, tu peux en faire une classe parente, ou une interface.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 114
    Par défaut
    Peut-être que tu peux en faire une principale et 2 autres versions qui appellent celle-ci avec des paramètres différents?
    Oui, ou je peux faire une méthode qui se comporte différemment en fonction d'un paramètre, mais je voudrais pouvoir ajouter des variantes facilement, donc de préférence en passant par des classes abstraites.

    Est-ce que c'est une méthode "outils" qui pourrait être externalisée dans une classe "Boite à outils"?
    Non, pour les mêmes raisons que dans ma réponse précédente.

    Si non, à quoi correspond cette méthode? si ces 2 classes ont un comportement en commun, tu peux en faire une classe parente, ou une interface.
    Cette méthode modifie les valeurs d'un tableau d'entiers, et il y a 3 de façons différentes de le faire. Ces façons de modifier sont cohérentes entre l'apprentissage et l'évaluation. L'apprentissage et l'évaluation ont un comportement différent.

  4. #4
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    Mais si le comportement est différent, le code n'est pas redondant?
    Donc tu pourrais faire une interface pour que l'implémentation soit spécifique à chaque classe.

    Si le code est partiellement redondant, tu peux diviser la méthode en 2. Tu en mets une partie dans une méthode d'une classe abstraite, et tu créés dans cette classe abstraite une méthode abstraite qui sera implémentée par les autres classes.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 114
    Par défaut
    J'ai finalement opté pour une classe Outil avec des méthodes statiques, je crois que c'est le moindre pour ma problématique. Merci pour ton aide CheryBen !

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

Discussions similaires

  1. [XL-2010] Eviter répétition code
    Par zycomatic dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 31/07/2012, 10h06
  2. alléger mon code redondant
    Par adriennoob dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/04/2010, 10h43
  3. simplification de code redondant
    Par bosk1000 dans le forum Conception
    Réponses: 15
    Dernier message: 07/12/2009, 19h29
  4. Eviter des calculs redondants
    Par mister3957 dans le forum C++
    Réponses: 3
    Dernier message: 23/11/2007, 12h02
  5. [HTML]Eviter les redondances de code
    Par Pfeffer dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 30/12/2005, 09h13

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