Pattern de chaînage de méthodes
Fait partie de la section Programmation Orientée Objet du Journey JavaScript de Coddy — leçon 16 sur 56.
Le chaînage de méthodes est un patron de programmation qui vous permet d'appeler plusieurs méthodes sur le même objet dans une seule instruction. Chaque méthode retourne l'objet lui-même (this), vous permettant ainsi d'appeler la méthode suivante sur la même ligne.
Créer un objet compteur simple :
const counter = {
count: 0,
increment() {
this.count++;
return this;
},
decrement() {
this.count--;
return this;
},
getValue() {
return this.count;
}
};Vous pouvez maintenant enchaîner les méthodes :
// Enchaîner plusieurs opérations
counter.increment().increment().decrement();
// Le compteur est maintenant à 1
console.log(counter.getValue()); // Résultat : 1La clé du chaînage de méthodes est de retourner this depuis chaque méthode que vous souhaitez rendre chaînable.
Défi
On vous donne un objet calculator qui possède déjà les méthodes add() et subtract(). Votre tâche consiste à ajouter les méthodes multiply et divide qui retournent this pour permettre le chaînage.
Aide-mémoire
Le chaînage de méthodes permet d'appeler plusieurs méthodes sur le même objet en une seule instruction. Chaque méthode retourne l'objet lui-même (this), ce qui permet d'appeler la méthode suivante sur la même ligne.
Pour permettre le chaînage de méthodes, retournez this dans chaque méthode :
const counter = {
count: 0,
increment() {
this.count++;
return this;
},
decrement() {
this.count--;
return this;
},
getValue() {
return this.count;
}
};Enchaînez plusieurs méthodes les unes après les autres :
counter.increment().increment().decrement();
console.log(counter.getValue()); // Résultat : 1Essayez vous-même
import { calculator } from './calculator.js';
// Code de test - ne pas modifier
const result1 = calculator.add(10).multiply(2).getValue();
console.log(result1); // Devrait afficher 20
// Réinitialisation pour le deuxième test
calculator.value = 0;
const result2 = calculator.add(20).divide(4).subtract(1).getValue();
console.log(result2); // Devrait afficher 4Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Programmation Orientée Objet
1Objets et le mot-clé this
Révision rapide : Les objetsAjouter des méthodes aux objetsComprendre le mot-clé thisFonctions constructeursLe mot-clé newDéfi récapitulatif7L'héritage et le mot-clé extends
L'héritageLa relation « est un »Le mot-clé extendsLa méthode super()Hériter des propriétés et méthodesDéfi récapitulatif10Polymorphisme
Qu'est-ce que le polymorphisme ?Redéfinition de méthodes héritéesUtiliser superDéfi récapitulatif13Composition vs Héritage
Les relations « has-a » vs « is-a »Les limites de l'héritage profondConstruction d'objets2Organisation du code
Qu'est-ce qu'un module ?Exporter avec exportImporter avec importExports par défaut vs nommés5Encapsulation & Accès
EncapsulationChamps de classe publics et privésMéthodes privéesDéfi récapitulatif8Organisation du code POO
Organiser les classes en modules11Projet : Un moteur de rendu de formes
Configuration : Classe Shape et ExportationHéritage de la classe Circle14Système de gestion de bibliothèque
Conception de la bibliothèqueClasse Book avec composition3Classes et Objets
Qu'est-ce qu'une classe ?Créer des instancesPropriétés et méthodesDéfi récapitulatif9Méthodes et propriétés statiques
Niveau classe vs Niveau instancePropriétés statiquesMéthodes utilitaires statiquesDéfi récapitulatif