Allez, je rentre dans la mêlée
C'est une mauvaise connaissance de la POO que de croire que le but du constructeur est de ne faire que de l'assignation de valeurs. Le but d'un constructeur est, comme son nom l'indique, la construction de l'objet. Et un objet est considéré comme construit quand il est valide. Dans l'exemple qui nous occupe, un objet valide représente une url valide et donc il est normale que la vérification ait lieu dans le constructeur.
Il n'est pas dit ici que les tests sont inutiles, mais juste que l'intérêt d'utiliser des types du genre Url est que les tests de vérification / validation / etc. ont été effectués par le concepteur de la classe et que donc pas besoin de les refaire.
Pour en revenir au débat plus global, je trouve ça amusant.. Chaque langage, chaque paradigme a ses forces et ses faiblesses.. mais venir dire le JS c'est dégueulasse parce que je sais pas écrire du C++ en JS ou inversément, c'est comme si on venait à dire le français, c'est dégueulasse parce que je ne peux pas utiliser la même construction grammaticale qu'en allemand ou en néerlandais !!
Mais bon, le problème avec des langages qui prennent subitement un coup de projecteur, c'est le même qu'avec un marteau.. Quand on en trouve un beau, on voit des clous partout !
Partager