J'ai l'impression que tu peux apprendre des choses (même si elles ne
sont pas vraiment en rapport avec ton post initial, ce dont je te pris
de m'excuser...)
Vous n'êtes pas le premier à me dire cela, loin de là. J'avoue que
pour moi, ça reste floue cette histoire d'éviter les switch.
Qu'est-ce qui est flou pour toi ?
Remplacer les switch par le polymorphisme est la façon la plus naturelle
d'introduire l'héritage dans une programmation. Il faut que ceci ait été
prévu dès la conception car on ne trafique jamais le code impunément...
Mais quand tu écris switch (monEnum)
{
case c1 : ...
case c2 : ...
other : ...
}
que fais-tu, sinon définir un traitement sur ton enum ?
et tu ne va pas, pour un enum donné, définir des centaines de traitement
(de switch donc) différents sinon c'est qu'il y a un vrai problème de
conception...
J'ai l'impression que tu peux apprendre des choses (même si elles ne
sont pas vraiment en rapport avec ton post initial, ce dont je te pris
de m'excuser...)
Vous n'êtes pas le premier à me dire cela, loin de là. J'avoue que
pour moi, ça reste floue cette histoire d'éviter les switch.
Qu'est-ce qui est flou pour toi ?
Remplacer les switch par le polymorphisme est la façon la plus naturelle
d'introduire l'héritage dans une programmation. Il faut que ceci ait été
prévu dès la conception car on ne trafique jamais le code impunément...
Mais quand tu écris switch (monEnum)
{
case c1 : ...
case c2 : ...
other : ...
}
que fais-tu, sinon définir un traitement sur ton enum ?
et tu ne va pas, pour un enum donné, définir des centaines de traitement
(de switch donc) différents sinon c'est qu'il y a un vrai problème de
conception...
J'ai l'impression que tu peux apprendre des choses (même si elles ne
sont pas vraiment en rapport avec ton post initial, ce dont je te pris
de m'excuser...)
Vous n'êtes pas le premier à me dire cela, loin de là. J'avoue que
pour moi, ça reste floue cette histoire d'éviter les switch.
Qu'est-ce qui est flou pour toi ?
Remplacer les switch par le polymorphisme est la façon la plus naturelle
d'introduire l'héritage dans une programmation. Il faut que ceci ait été
prévu dès la conception car on ne trafique jamais le code impunément...
Mais quand tu écris switch (monEnum)
{
case c1 : ...
case c2 : ...
other : ...
}
que fais-tu, sinon définir un traitement sur ton enum ?
et tu ne va pas, pour un enum donné, définir des centaines de traitement
(de switch donc) différents sinon c'est qu'il y a un vrai problème de
conception...
Mais dans les "switch/case", on a le droit de mettre des enum justement,
non ? En tout cas, chez moi, ceci compile sans problème :
Mais dans les "switch/case", on a le droit de mettre des enum justement,
non ? En tout cas, chez moi, ceci compile sans problème :
Mais dans les "switch/case", on a le droit de mettre des enum justement,
non ? En tout cas, chez moi, ceci compile sans problème :
Mais dans les "switch/case", on a le droit de mettre des enum justement,
non ? En tout cas, chez moi, ceci compile sans problème :
Mais dans les "switch/case", on a le droit de mettre des enum justement,
non ? En tout cas, chez moi, ceci compile sans problème :
Mais dans les "switch/case", on a le droit de mettre des enum justement,
non ? En tout cas, chez moi, ceci compile sans problème :
Rappelez-vous ceci :
La chasse au switch est à la programmation objet ce que la chasse au
goto est à la programmation structurée !
Rappelez-vous ceci :
La chasse au switch est à la programmation objet ce que la chasse au
goto est à la programmation structurée !
Rappelez-vous ceci :
La chasse au switch est à la programmation objet ce que la chasse au
goto est à la programmation structurée !
Wykaaa a écrit :J'ai l'impression que tu peux apprendre des choses (même si elles ne
sont pas vraiment en rapport avec ton post initial, ce dont je te pris
de m'excuser...)
Non, non, il n'y a pas de problème, tout ceci m'intéresse.Vous n'êtes pas le premier à me dire cela, loin de là. J'avoue que
pour moi, ça reste floue cette histoire d'éviter les switch.
Qu'est-ce qui est flou pour toi ?
Par "flou", je voulais dire en fait que je n'ai jamais eu l'expérience
réelle et palpable des inconvénients du switch. Mais cela vient du fait
que, étant un simple programmeur du dimanche, mes petits codes n'ont pas
un volume assez important pour rendre palpable cette vérité selon
laquelle le switch c'est pas bien en objet. C'est toujours un problème
d'échelle. Sur un code de 50 lignes, dire que le switch c'est pas bien,
c'est jamais très frappant.
Remplacer les switch par le polymorphisme est la façon la plus
naturelle d'introduire l'héritage dans une programmation. Il faut que
ceci ait été prévu dès la conception car on ne trafique jamais le code
impunément...
Je retiens l'idée : "pas de switch en objet, on utilise le polymorphisme
à la place". Ceci étant, Samuel avait sur ce point des reproches que
hélas je n'ai pas trop saisis (histoire de code livré/pas livré,
enrichissement de classe par le bas, tout ça...)
Mais quand tu écris switch (monEnum)
{
case c1 : ...
case c2 : ...
other : ...
}
que fais-tu, sinon définir un traitement sur ton enum ?
C'est vrai. On associe des données avec des traitements.
et tu ne va pas, pour un enum donné, définir des centaines de
traitement (de switch donc) différents sinon c'est qu'il y a un vrai
problème de conception...
Ok, le message est bien passé. Mais il y a juste une chose. Faire du
enum et du switch, c'est associer données et traitements, donc il faut
repenser la chose en objets via le polymorphisme. Mais alors dans ce cas
pourquoi s'embêter avec des enum. Dans ce cas, on fait des vraies
classes et on laisse tomber le enum. En fait, dans votre logique, j'ai
l'impression que les enum n'apportent rien et qu'on pourrait s'en passer
largement puisqu'on en arrive à faire finalement des vraies classes avec
l'héritage et compagnie. À la limite, dans votre logique, vous me diriez
que vous ne voulez pas entendre parler des enum, je trouverais ça plus
cohérent. Remarquez, c'est peut-être le cas d'ailleurs, puisque dans
l'exemple d'implémentation de l'enum Etat, vous n'avez justement pas
utilisé d'enum.
Wykaaa a écrit :
J'ai l'impression que tu peux apprendre des choses (même si elles ne
sont pas vraiment en rapport avec ton post initial, ce dont je te pris
de m'excuser...)
Non, non, il n'y a pas de problème, tout ceci m'intéresse.
Vous n'êtes pas le premier à me dire cela, loin de là. J'avoue que
pour moi, ça reste floue cette histoire d'éviter les switch.
Qu'est-ce qui est flou pour toi ?
Par "flou", je voulais dire en fait que je n'ai jamais eu l'expérience
réelle et palpable des inconvénients du switch. Mais cela vient du fait
que, étant un simple programmeur du dimanche, mes petits codes n'ont pas
un volume assez important pour rendre palpable cette vérité selon
laquelle le switch c'est pas bien en objet. C'est toujours un problème
d'échelle. Sur un code de 50 lignes, dire que le switch c'est pas bien,
c'est jamais très frappant.
Remplacer les switch par le polymorphisme est la façon la plus
naturelle d'introduire l'héritage dans une programmation. Il faut que
ceci ait été prévu dès la conception car on ne trafique jamais le code
impunément...
Je retiens l'idée : "pas de switch en objet, on utilise le polymorphisme
à la place". Ceci étant, Samuel avait sur ce point des reproches que
hélas je n'ai pas trop saisis (histoire de code livré/pas livré,
enrichissement de classe par le bas, tout ça...)
Mais quand tu écris switch (monEnum)
{
case c1 : ...
case c2 : ...
other : ...
}
que fais-tu, sinon définir un traitement sur ton enum ?
C'est vrai. On associe des données avec des traitements.
et tu ne va pas, pour un enum donné, définir des centaines de
traitement (de switch donc) différents sinon c'est qu'il y a un vrai
problème de conception...
Ok, le message est bien passé. Mais il y a juste une chose. Faire du
enum et du switch, c'est associer données et traitements, donc il faut
repenser la chose en objets via le polymorphisme. Mais alors dans ce cas
pourquoi s'embêter avec des enum. Dans ce cas, on fait des vraies
classes et on laisse tomber le enum. En fait, dans votre logique, j'ai
l'impression que les enum n'apportent rien et qu'on pourrait s'en passer
largement puisqu'on en arrive à faire finalement des vraies classes avec
l'héritage et compagnie. À la limite, dans votre logique, vous me diriez
que vous ne voulez pas entendre parler des enum, je trouverais ça plus
cohérent. Remarquez, c'est peut-être le cas d'ailleurs, puisque dans
l'exemple d'implémentation de l'enum Etat, vous n'avez justement pas
utilisé d'enum.
Wykaaa a écrit :J'ai l'impression que tu peux apprendre des choses (même si elles ne
sont pas vraiment en rapport avec ton post initial, ce dont je te pris
de m'excuser...)
Non, non, il n'y a pas de problème, tout ceci m'intéresse.Vous n'êtes pas le premier à me dire cela, loin de là. J'avoue que
pour moi, ça reste floue cette histoire d'éviter les switch.
Qu'est-ce qui est flou pour toi ?
Par "flou", je voulais dire en fait que je n'ai jamais eu l'expérience
réelle et palpable des inconvénients du switch. Mais cela vient du fait
que, étant un simple programmeur du dimanche, mes petits codes n'ont pas
un volume assez important pour rendre palpable cette vérité selon
laquelle le switch c'est pas bien en objet. C'est toujours un problème
d'échelle. Sur un code de 50 lignes, dire que le switch c'est pas bien,
c'est jamais très frappant.
Remplacer les switch par le polymorphisme est la façon la plus
naturelle d'introduire l'héritage dans une programmation. Il faut que
ceci ait été prévu dès la conception car on ne trafique jamais le code
impunément...
Je retiens l'idée : "pas de switch en objet, on utilise le polymorphisme
à la place". Ceci étant, Samuel avait sur ce point des reproches que
hélas je n'ai pas trop saisis (histoire de code livré/pas livré,
enrichissement de classe par le bas, tout ça...)
Mais quand tu écris switch (monEnum)
{
case c1 : ...
case c2 : ...
other : ...
}
que fais-tu, sinon définir un traitement sur ton enum ?
C'est vrai. On associe des données avec des traitements.
et tu ne va pas, pour un enum donné, définir des centaines de
traitement (de switch donc) différents sinon c'est qu'il y a un vrai
problème de conception...
Ok, le message est bien passé. Mais il y a juste une chose. Faire du
enum et du switch, c'est associer données et traitements, donc il faut
repenser la chose en objets via le polymorphisme. Mais alors dans ce cas
pourquoi s'embêter avec des enum. Dans ce cas, on fait des vraies
classes et on laisse tomber le enum. En fait, dans votre logique, j'ai
l'impression que les enum n'apportent rien et qu'on pourrait s'en passer
largement puisqu'on en arrive à faire finalement des vraies classes avec
l'héritage et compagnie. À la limite, dans votre logique, vous me diriez
que vous ne voulez pas entendre parler des enum, je trouverais ça plus
cohérent. Remarquez, c'est peut-être le cas d'ailleurs, puisque dans
l'exemple d'implémentation de l'enum Etat, vous n'avez justement pas
utilisé d'enum.
Par "flou", je voulais dire en fait que je n'ai jamais eu l'expérience
réelle et palpable des inconvénients du switch. Mais cela vient du fait
que, étant un simple programmeur du dimanche, mes petits codes n'ont pas
un volume assez important pour rendre palpable cette vérité selon
laquelle le switch c'est pas bien en objet.
Mais il y a juste une chose. Faire du
enum et du switch, c'est associer données et traitements, donc il faut
repenser la chose en objets via le polymorphisme. Mais alors dans ce cas
pourquoi s'embêter avec des enum. Dans ce cas, on fait des vraies
classes et on laisse tomber le enum. En fait, dans votre logique, j'ai
l'impression que les enum n'apportent rien et qu'on pourrait s'en passer
largement puisqu'on en arrive à faire finalement des vraies classes avec
l'héritage et compagnie. À la limite, dans votre logique, vous me diriez
que vous ne voulez pas entendre parler des enum, je trouverais ça plus
cohérent. Remarquez, c'est peut-être le cas d'ailleurs, puisque dans
l'exemple d'implémentation de l'enum Etat, vous n'avez justement pas
utilisé d'enum.
Par "flou", je voulais dire en fait que je n'ai jamais eu l'expérience
réelle et palpable des inconvénients du switch. Mais cela vient du fait
que, étant un simple programmeur du dimanche, mes petits codes n'ont pas
un volume assez important pour rendre palpable cette vérité selon
laquelle le switch c'est pas bien en objet.
Mais il y a juste une chose. Faire du
enum et du switch, c'est associer données et traitements, donc il faut
repenser la chose en objets via le polymorphisme. Mais alors dans ce cas
pourquoi s'embêter avec des enum. Dans ce cas, on fait des vraies
classes et on laisse tomber le enum. En fait, dans votre logique, j'ai
l'impression que les enum n'apportent rien et qu'on pourrait s'en passer
largement puisqu'on en arrive à faire finalement des vraies classes avec
l'héritage et compagnie. À la limite, dans votre logique, vous me diriez
que vous ne voulez pas entendre parler des enum, je trouverais ça plus
cohérent. Remarquez, c'est peut-être le cas d'ailleurs, puisque dans
l'exemple d'implémentation de l'enum Etat, vous n'avez justement pas
utilisé d'enum.
Par "flou", je voulais dire en fait que je n'ai jamais eu l'expérience
réelle et palpable des inconvénients du switch. Mais cela vient du fait
que, étant un simple programmeur du dimanche, mes petits codes n'ont pas
un volume assez important pour rendre palpable cette vérité selon
laquelle le switch c'est pas bien en objet.
Mais il y a juste une chose. Faire du
enum et du switch, c'est associer données et traitements, donc il faut
repenser la chose en objets via le polymorphisme. Mais alors dans ce cas
pourquoi s'embêter avec des enum. Dans ce cas, on fait des vraies
classes et on laisse tomber le enum. En fait, dans votre logique, j'ai
l'impression que les enum n'apportent rien et qu'on pourrait s'en passer
largement puisqu'on en arrive à faire finalement des vraies classes avec
l'héritage et compagnie. À la limite, dans votre logique, vous me diriez
que vous ne voulez pas entendre parler des enum, je trouverais ça plus
cohérent. Remarquez, c'est peut-être le cas d'ailleurs, puisque dans
l'exemple d'implémentation de l'enum Etat, vous n'avez justement pas
utilisé d'enum.
Vous n'êtes pas le premier à me dire cela, loin de là. J'avoue que pour
moi, ça reste floue cette histoire d'éviter les switch.
Vous n'êtes pas le premier à me dire cela, loin de là. J'avoue que pour
moi, ça reste floue cette histoire d'éviter les switch.
Vous n'êtes pas le premier à me dire cela, loin de là. J'avoue que pour
moi, ça reste floue cette histoire d'éviter les switch.
En objet, pour moi, les enum ne sont pas nécessaires
car ils "poussent" à l'utilisation de switch ce qui ne facilite pas la
maintenance. L'"aiguillage" doit se faire via le polymorphisme qui est
le mécanisme naturel dans les langages objet.
En objet, pour moi, les enum ne sont pas nécessaires
car ils "poussent" à l'utilisation de switch ce qui ne facilite pas la
maintenance. L'"aiguillage" doit se faire via le polymorphisme qui est
le mécanisme naturel dans les langages objet.
En objet, pour moi, les enum ne sont pas nécessaires
car ils "poussent" à l'utilisation de switch ce qui ne facilite pas la
maintenance. L'"aiguillage" doit se faire via le polymorphisme qui est
le mécanisme naturel dans les langages objet.
Mais quand tu écris switch (monEnum)
{
case c1 : ...
case c2 : ...
other : ...
}
que fais-tu, sinon définir un traitement sur ton enum ?
et tu ne va pas, pour un enum donné, définir des centaines de traitement
(de switch donc) différents sinon c'est qu'il y a un vrai problème de
conception...
Et bonjour, pour modifier les centaines de switch, si tu ajoute une
valeur à ton enum ;-)
Remarque que beaucoup font comme ça et que c'est pour ça que les
programmes sont difficilement maintenables et évolutifs et qu'il faut
les jeter au bout de 4 ou 5 versions...
Mais quand tu écris switch (monEnum)
{
case c1 : ...
case c2 : ...
other : ...
}
que fais-tu, sinon définir un traitement sur ton enum ?
et tu ne va pas, pour un enum donné, définir des centaines de traitement
(de switch donc) différents sinon c'est qu'il y a un vrai problème de
conception...
Et bonjour, pour modifier les centaines de switch, si tu ajoute une
valeur à ton enum ;-)
Remarque que beaucoup font comme ça et que c'est pour ça que les
programmes sont difficilement maintenables et évolutifs et qu'il faut
les jeter au bout de 4 ou 5 versions...
Mais quand tu écris switch (monEnum)
{
case c1 : ...
case c2 : ...
other : ...
}
que fais-tu, sinon définir un traitement sur ton enum ?
et tu ne va pas, pour un enum donné, définir des centaines de traitement
(de switch donc) différents sinon c'est qu'il y a un vrai problème de
conception...
Et bonjour, pour modifier les centaines de switch, si tu ajoute une
valeur à ton enum ;-)
Remarque que beaucoup font comme ça et que c'est pour ça que les
programmes sont difficilement maintenables et évolutifs et qu'il faut
les jeter au bout de 4 ou 5 versions...
Mais dans les "switch/case", on a le droit de mettre des enum justement,
non ? En tout cas, chez moi, ceci compile sans problème :
Je répondais à ta question initiale "Comment aurait-on fait avant Java 5 ?".
Mais dans les "switch/case", on a le droit de mettre des enum justement,
non ? En tout cas, chez moi, ceci compile sans problème :
Je répondais à ta question initiale "Comment aurait-on fait avant Java 5 ?".
Mais dans les "switch/case", on a le droit de mettre des enum justement,
non ? En tout cas, chez moi, ceci compile sans problème :
Je répondais à ta question initiale "Comment aurait-on fait avant Java 5 ?".