Moi je vote pour
une question :
En quoi cela affecterait la maintenance?Cette discussion et le sondage sont intéressants : elle montre que beaucoup de gens préférent coder rapidement sans se soucier de la maintenance...
Moi je vote pour
une question :
En quoi cela affecterait la maintenance?Cette discussion et le sondage sont intéressants : elle montre que beaucoup de gens préférent coder rapidement sans se soucier de la maintenance...
Typiquement une combo-box avec { "M", "Mme", "Mlle" } et le switch() qui va avec. Si tu traduis l'IHM de ton application, tu dois également traduire le code du switch() (et ne pas te tromper en recopiant).
Avec un Enum le problème disparait. Tu garde le meme code du switch() et tu as juste a traduire le toString() de l'Enum.
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
Bah oui c'est un expemple de mauvaise utilisation mais bon, si tu veux interdire avec switch, la personne fera la même chose avec une série de if, ce qui tout aussi bête.
Si tu veux interdire tout ce qui peux potentielement être mal utilisé, autant interdire le Java.
J'ai voté contre,
Je préfère garder la syntaxe if else pour les comparaisons d'objet et les switch case pour les enumérations (cela oblige la personne à faire des énumérations et évite les problèmes de "magic number" déjà trop récurent).
Je suis pour.
J'irais même un peu plus loin en proposant le switch pour les objets.
Voir mon blog pour plus de détail (en anglais)
http://www.jroller.com/agoubard/entry/switch_on_objects
Anthony
Totalement pour... inutile de commenter...![]()
sa sera bien pratique cool![]()
J'ai longtemps hésité entre pour et contre.
J'ai finalement voté pour. Apres tout pour des classes de tests ça me serait bien utile. Mais je penses pas l'utiliser des mes développements finaux. Enfin je dis ça mais au boulot on est encore à la java 1.4.2, ....
JHelp
Perso je vote contre... les enumérations remplacent avantageusement ce genre d'opération.
Pour moi, du jour ou on fait un 'switch()' c'est qu'on a une liste de valeurs énumérées... et donc on utilise un enum.
Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public enum Booleans { True, False };
Contre aussi, il y a certainement des cas légitimes de faire de la comparaison de chaines en dur mais je reste convaincu qu'ils sont rares.
De façon générale les chaines de caractères ne devraient qu'exceptionnellement être dans le code. Si ce sont des éléments de langue 'Mr' 'Mme' 'Mlle' 'True' 'False': ils devraient être dans des fichiers de config pour anticiper la localisation ou permettre le parametrage par un non-développeur.
Les chaines de caractères ne devraient pas servir de marqueur interne, les énum sont là pour ça.
Reste les cas genre lecture de xml, communication diverses avec d'autres entités. Mais là encore on va vite se trouver avoir un niveau d'abstraction qui fera que les chaines à comparer ne seront pas statiques mais dans une variable.
Par contre le switch sur le chaines risque d'amener et d'encourager des pratiques peu recommandables:
-utilisation de chaines au lieu d'enum: c'est lourd et ca ne sert à rien.
-comparaison d'objet en passant par des strings:
ou pire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 MonObjet obj=...; swith(obj.toString()){ case "toto": // break; case "titi"; }
Je trouve le bénéfice-risque très limité.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 swith(obj.getClass()){ case "MonObjet": // break; case "MonAutreObjet"; }
pour moi ça me faire qlq chose qui bien et donc je vote pour.
Clair, ça manque.
voila une nouveauté qui est pas mal du tout, qui nous facilitera et allégera le code. je suis pour à 100%. fini les conditions de if else répétitives.
Partager