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

Logging Java Discussion :

Remplacer les test if, else if par un design pattern


Sujet :

Logging Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Janvier 2006
    Messages : 194
    Par défaut Remplacer les test if, else if par un design pattern
    Bonjour tous le monde,

    Est ce que on peut remplacer les conditions dans une classe java par un design pattern (decorator ou bien autre).
    Dans certains classes java je trouve une utilisation trop fréquente des conditions :
    if (....) {
    .....
    } else if (...) {
    ......
    }
    ......
    est ce que c'est possible de mettre en place un DP qui améliore la cette implémentation.

    Merci d'avance

  2. #2
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Par défaut
    bonjour,

    il n'y a pas de DP pour remplacer des if ... else if !
    Cependant dans certains cas, il est possible des les faire disparaitre avec une bonne conception. Mais c'est du cas par cas, cela dépend de ton code.
    Quelles sont les conditions de tes if ?
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Janvier 2006
    Messages : 194
    Par défaut
    Merci Alkhan,
    En fait, je test sur les valeurs d'une variable (Objet)

  4. #4
    Membre expérimenté Avatar de MaitreKaio
    Profil pro
    Freelance Java / Web / Mobile
    Inscrit en
    Juin 2007
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Freelance Java / Web / Mobile
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2007
    Messages : 140
    Par défaut
    Et c'est possible d'avoir un bout de code pour se faire une meilleure idée de ce que tu testes ?

  5. #5
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Par défaut
    Quand j'ai dis : Quelles sont les conditions de tes if ?

    Citation Envoyé par menzlitsh Voir le message
    En fait, je test sur les valeurs d'une variable (Objet)
    je pensais plutôt à des parties de ton code.
    Comme je te l'ai dis c'est en fonction de ton code qu'on verra si l'on peut faire disparaitre tes bloc de if.
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre très actif
    Profil pro
    Inscrit en
    Février 2010
    Messages
    766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 766
    Par défaut
    Des blocs if then else trop nombreux et imbriqués, cache très souvent une mauvaise conception.

    Il est souvent possible soit de factoriser le code et d'avoir que très peu de if, soit en préparant un peu le terrain d'utiliser un bloc switch case qui traitera tous les cas possible.

    Donne ton code on va voir ...

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 22
    Par défaut
    je pense aussi que la conception est peut être la source du problème. un switch ça peut pas aider ?

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/01/2009, 15h50
  2. Remplacer les Caractères Null (Ascii 00) par autre chose
    Par wayak3 dans le forum Développement
    Réponses: 6
    Dernier message: 29/05/2008, 10h47
  3. Remplacer les espaces d'une URL par un tiret
    Par Tee shot dans le forum Langage
    Réponses: 2
    Dernier message: 29/03/2007, 00h02
  4. Réponses: 3
    Dernier message: 23/12/2005, 16h13
  5. [C#] Remplacer les boutons d'un DataGrid par une image
    Par PascalL dans le forum Windows Forms
    Réponses: 17
    Dernier message: 04/04/2005, 16h07

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