methusalah / optics

An optical simulator in browser
1 stars 1 forks source link

une seule declaration pour plusieurs methodes #2

Open methusalah opened 9 years ago

methusalah commented 9 years ago

Quand une méthode peut recevoir différents sets d’arguments, en java, on la réécrit.

En javascript si je ne me trompe pas, on doit l'écrire qu'une fois et faire des tests sur les arguments. Du coup pour réunir les méthodes suivantes : sub(Point other), sub(double factor), sub(double xFactor, yFactor), j'ai fait ça :

sub: function(arg1, arg2){
    if(arg1 instanceof Point)
        return new Point(this.x-arg1.x, this.y-arg1.y);
    else if(!arg2)
        return new Point(this.x-arg1, this.y-arg1);
    else
        return new Point(this.x-arg1, this.y-arg2);
},

Ça marche mais est-ce valable?

La nomenclature des arguments devient particulièrement illisible, y'a-t-il un genre de convention, ou de bonne pratique? Peut-être renvoyer vers des sous méthodes genre sub1(), sub2(), sub3()... ??

solendil commented 9 years ago

Oui c'est une pratique non seulement valable mais recommandée. Pour la nomenclature des arguments au sein de la méthode, tu peux créer des variables locales avec des noms plus explicites, ou bien comme tu le suggérais appeler des sous-méthodes "typées", dans ce cas ta méthode générique devient juste un aiguillage.