Surcharge de méthode élégante en Javascript
Publié le 28 avril 2010 à 10:23 - Quick Tips
Aujourd’hui, j’ai eu besoin de surcharger une méthode Javascript. Premier réflexe, réécrire la fonction en y ajoutant le code voulu.
Soit le code qui suit :
mon_objet.fait_le_café = function() {
var tasse = prendre_une_tasse();
tasse.verser_café();
tasse.faire_chauffer();
return tasse;
}
Afin d’ajouter du sucre, on pourrait surcharger de la façon suivante :
mon_objet.fait_le_café = function() {
var tasse = prendre_une_tasse();
tasse.verser_café();
tasse.faire_chauffer();
tasse.ajouter_sucre();
return tasse;
}
Jusque là, rien d’inhabituel. Mais quid du code propre, simple et surtout DRY ?
Voici donc une façon plus élégante d’obtenir le même résultat en écrivant juste le code nécessaire :
mon_objet.fait_le_café_sans_sucre = mon_objet.fait_le_café;
mon_objet.fait_le_café = function() {
var tasse = mon_objet.fait_le_café_sans_sucre();
tasse.ajouter_sucre();
return tasse;
}
C’est tout simple, ça fonctionne et c’est DRY…
Pour information, l’idée m’est venue du framework Ruby On Rails (en) et de sa méthode
blog comments powered by Disqus